|
|
@@ -37,6 +37,13 @@ def update_value(maintainer, player, property, new_value):
|
|
|
cur = conn.cursor()
|
|
|
cur.execute(query, (maintainer, player, property, value))
|
|
|
|
|
|
+def update_missing_value(maintainer, player, property, value):
|
|
|
+ query = """INSERT OR REPLACE INTO player (maintainer, player, property, value)
|
|
|
+ VALUES (?, ?, ?, ?);"""
|
|
|
+ conn = sqlite3.connect(settings.db_path + '/slork.sqlite')
|
|
|
+ cur = conn.cursor()
|
|
|
+ cur.execute(query, (maintainer, player, property, value)
|
|
|
+
|
|
|
def cron():
|
|
|
query = """SELECT player_properties.maintainer,
|
|
|
maintainer.api, player_properties.player,
|
|
|
@@ -72,9 +79,12 @@ def cron():
|
|
|
WHERE maintainer = ?
|
|
|
AND player = ?
|
|
|
AND player.property = ?;"""
|
|
|
+ retrieved_properties = []
|
|
|
for property in properties:
|
|
|
- for p_row in cur.execute(query, (row['maintainer'], row['player'], property)):
|
|
|
+ p_rows = cur.execute(query, (row['maintainer'], row['player'], property))
|
|
|
+ for p_row in p_rows:
|
|
|
print(f"property: '{property}' parent: '{p_row['parent']}' -> value: '{p_row['value']}'")
|
|
|
+ retrieved_properties.append(property)
|
|
|
new_value = ''
|
|
|
if (p_row['parent']):
|
|
|
new_value = player_json[p_row['parent']][property]
|
|
|
@@ -84,7 +94,20 @@ def cron():
|
|
|
if p_row['value'] != new_value:
|
|
|
send_notification(row['maintainer'], row['player'], property, p_row['value'], new_value)
|
|
|
update_value(row['maintainer'], row['player'], property, new_value)
|
|
|
-
|
|
|
+ new_properties = []
|
|
|
+ for item in properties:
|
|
|
+ if item not in retrieved_properties:
|
|
|
+ new_properties.append(item)
|
|
|
+ if len(new_properties > 0):
|
|
|
+ for item in len(new_properties):
|
|
|
+ query = """SELECT parent FROM properties where property = ?;"""
|
|
|
+ cur.execute(query, (item))
|
|
|
+ parent = cur.fetchone()['parent']
|
|
|
+ if (parent):
|
|
|
+ value = player_json[parent][property]
|
|
|
+ else:
|
|
|
+ value = player_json[property]
|
|
|
+ update_missing_value(row['maintainer'], row['player'], item, value):
|
|
|
time.sleep(1)
|
|
|
|
|
|
if __name__ == '__main__':
|