summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--app.py34
1 files changed, 22 insertions, 12 deletions
diff --git a/app.py b/app.py
index 785d5fe..f7d7555 100644
--- a/app.py
+++ b/app.py
@@ -79,24 +79,34 @@ def api_subscribers_channel_7d(channel_name):
@app.route("/api/subscribers/<channel_name>/milestones")
def get_channel_milestones(channel_name):
server = create_database_connection()
- milestone_multiple = request.args.get("q")
- if not milestone_multiple:
- milestone_multiple = 10000
+ milestone_increment = int(request.args.get("q", 10000))
+ initial_milestone = 20000
+ current_milestone = initial_milestone
query = """
- SELECT name, subscriber_count, MIN(timestamp)
+ SELECT subscriber_count, MIN(timestamp)
FROM subscriber_data_historical
- WHERE name = %s AND MOD(subscriber_count, %s) = 0
- GROUP BY name, subscriber_count
- ORDER BY subscriber_count, MIN(timestamp)
- LIMIT 10
+ WHERE name = %s
+ GROUP BY subscriber_count
+ ORDER BY subscriber_count ASC
"""
- data = server.execute_query(query, (channel_name, milestone_multiple,))
+ data = server.execute_query(query, (channel_name,))
dates = []
milestones = []
+ found_milestone = False
for row in data:
- date_string = row[2].strftime("%Y-%m-%d")
- dates.append(date_string)
- milestones.append(row[1])
+ subscriber_count = row[0]
+ while subscriber_count >= current_milestone:
+ if not found_milestone or subscriber_count == current_milestone:
+ date_string = row[1].strftime("%Y-%m-%d")
+ dates.append(date_string)
+ milestones.append(subscriber_count)
+ current_milestone += milestone_increment
+ found_milestone = True
+ break
+ else:
+ current_milestone += milestone_increment
+ found_milestone = False
+
return jsonify({"milestones": milestones, "dates": dates})
send patches to the email below
yukais@pinapelz.com
include the subject [PATCH repo_name]
pinapelz.com
homepage