This commit is contained in:
parent
f780447eb1
commit
518b9534ba
@ -3,7 +3,7 @@ from pathlib import Path
|
|||||||
import functools
|
import functools
|
||||||
import sys
|
import sys
|
||||||
|
|
||||||
printr = functools.partial(print,file=sys.stderr)
|
printr = functools.partial(print, file=sys.stderr)
|
||||||
|
|
||||||
per_image_width = 480
|
per_image_width = 480
|
||||||
per_image_height = 320
|
per_image_height = 320
|
||||||
@ -11,8 +11,8 @@ cols = 2
|
|||||||
|
|
||||||
images = list(Path("./export/").glob("*.png"))
|
images = list(Path("./export/").glob("*.png"))
|
||||||
image_count = len(images)
|
image_count = len(images)
|
||||||
total_image_height = (image_count / cols * per_image_height)
|
total_image_height = image_count / cols * per_image_height
|
||||||
if(image_count / cols * per_image_height > total_image_height):
|
if image_count / cols * per_image_height > total_image_height:
|
||||||
total_image_height += per_image_height
|
total_image_height += per_image_height
|
||||||
total_image_width = image_count / cols * per_image_width
|
total_image_width = image_count / cols * per_image_width
|
||||||
|
|
||||||
@ -21,9 +21,13 @@ resized_images = []
|
|||||||
for path in images:
|
for path in images:
|
||||||
image = Image.open(path)
|
image = Image.open(path)
|
||||||
image = image.resize((per_image_width, per_image_height))
|
image = image.resize((per_image_width, per_image_height))
|
||||||
resized_images.append((path,image))
|
resized_images.append((path, image))
|
||||||
|
|
||||||
new_image = Image.new("RGB",(per_image_width * cols, int(per_image_height * image_count / cols)), (250,250,250))
|
new_image = Image.new(
|
||||||
|
"RGB",
|
||||||
|
(per_image_width * cols, int(per_image_height * image_count / cols)),
|
||||||
|
(250, 250, 250),
|
||||||
|
)
|
||||||
|
|
||||||
current_col = 0
|
current_col = 0
|
||||||
current_row = 0
|
current_row = 0
|
||||||
@ -32,8 +36,8 @@ for path, image in resized_images:
|
|||||||
printr("Merging image {}".format(path))
|
printr("Merging image {}".format(path))
|
||||||
current_row = int(current_image_number / cols)
|
current_row = int(current_image_number / cols)
|
||||||
left = int((current_col) * per_image_width)
|
left = int((current_col) * per_image_width)
|
||||||
top = int(per_image_height * current_row )
|
top = int(per_image_height * current_row)
|
||||||
new_image.paste(image,(left,top))
|
new_image.paste(image, (left, top))
|
||||||
new_image.save("export/1_graphs_compliation.png")
|
new_image.save("export/1_graphs_compliation.png")
|
||||||
|
|
||||||
current_col += 1
|
current_col += 1
|
||||||
|
@ -2,7 +2,8 @@ from drstats import db
|
|||||||
import functools
|
import functools
|
||||||
import sys
|
import sys
|
||||||
|
|
||||||
printr = functools.partial(print,file=sys.stderr)
|
printr = functools.partial(print, file=sys.stderr)
|
||||||
|
|
||||||
|
|
||||||
def dump():
|
def dump():
|
||||||
statistics_text = [
|
statistics_text = [
|
||||||
@ -17,19 +18,29 @@ def dump():
|
|||||||
)
|
)
|
||||||
printr(statistics_text[-1])
|
printr(statistics_text[-1])
|
||||||
print("\n".join(statistics_text))
|
print("\n".join(statistics_text))
|
||||||
all_content = ''
|
all_content = ""
|
||||||
for user in db.get_users():
|
for user in db.get_users():
|
||||||
text = db.get_all_rants_of_user(user).replace("\n"," ").replace(" "," ").strip()
|
text = (
|
||||||
|
db.get_all_rants_of_user(user).replace("\n", " ").replace(" ", " ").strip()
|
||||||
|
)
|
||||||
total_text = ""
|
total_text = ""
|
||||||
if text:
|
if text:
|
||||||
total_text += text
|
total_text += text
|
||||||
print("```",f"All rants written by user(ranter) `{user}` on devRant(developer community)```.")
|
print(
|
||||||
print(text,"```")
|
"```",
|
||||||
text = db.get_all_posts_of_user(user).replace("\n", " ").replace(" "," ").strip()
|
f"All rants written by user(ranter) `{user}` on devRant(developer community)```.",
|
||||||
|
)
|
||||||
|
print(text, "```")
|
||||||
|
text = (
|
||||||
|
db.get_all_posts_of_user(user).replace("\n", " ").replace(" ", " ").strip()
|
||||||
|
)
|
||||||
if text:
|
if text:
|
||||||
total_text += text
|
total_text += text
|
||||||
print("```",f"All posts written by user(ranter) `{user}` on devRant(developer community): ```.")
|
print(
|
||||||
print(text,"```")
|
"```",
|
||||||
|
f"All posts written by user(ranter) `{user}` on devRant(developer community): ```.",
|
||||||
|
)
|
||||||
|
print(text, "```")
|
||||||
all_content += total_text
|
all_content += total_text
|
||||||
|
|
||||||
for user in db.get_users():
|
for user in db.get_users():
|
||||||
@ -37,6 +48,3 @@ def dump():
|
|||||||
line = f"{user} is {all_content.count(mention_text)} times mentioned on devRant(developer comminity)."
|
line = f"{user} is {all_content.count(mention_text)} times mentioned on devRant(developer comminity)."
|
||||||
printr(line)
|
printr(line)
|
||||||
print(line)
|
print(line)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
@ -33,7 +33,7 @@ class Devrant:
|
|||||||
url = self.API + "devrant/search"
|
url = self.API + "devrant/search"
|
||||||
params = {"app": 3, "term": term}
|
params = {"app": 3, "term": term}
|
||||||
|
|
||||||
r = requests.get(url, params,timeout=5)
|
r = requests.get(url, params, timeout=5)
|
||||||
obj = json.loads(r.text)
|
obj = json.loads(r.text)
|
||||||
return obj
|
return obj
|
||||||
|
|
||||||
@ -52,7 +52,7 @@ class Devrant:
|
|||||||
params = {
|
params = {
|
||||||
"app": 3,
|
"app": 3,
|
||||||
}
|
}
|
||||||
r = requests.get(url, params,timeout=5)
|
r = requests.get(url, params, timeout=5)
|
||||||
obj = json.loads(r.text)
|
obj = json.loads(r.text)
|
||||||
return obj
|
return obj
|
||||||
|
|
||||||
@ -65,7 +65,7 @@ class Devrant:
|
|||||||
url = self.API + "devrant/rants"
|
url = self.API + "devrant/rants"
|
||||||
params = {"app": 3, "sort": sort, "limit": limit, "skip": skip}
|
params = {"app": 3, "sort": sort, "limit": limit, "skip": skip}
|
||||||
|
|
||||||
r = requests.get(url, params,timeout=5)
|
r = requests.get(url, params, timeout=5)
|
||||||
obj = json.loads(r.text)
|
obj = json.loads(r.text)
|
||||||
return obj
|
return obj
|
||||||
|
|
||||||
|
@ -1,6 +1,7 @@
|
|||||||
import time
|
import time
|
||||||
import sys
|
import sys
|
||||||
|
|
||||||
|
|
||||||
class Duration:
|
class Duration:
|
||||||
|
|
||||||
def __init__(self, description):
|
def __init__(self, description):
|
||||||
@ -13,5 +14,5 @@ class Duration:
|
|||||||
def __exit__(self, exc_type, exc_val, exc_tb):
|
def __exit__(self, exc_type, exc_val, exc_tb):
|
||||||
self.end = time.time()
|
self.end = time.time()
|
||||||
self.duration = self.end - self.start
|
self.duration = self.end - self.start
|
||||||
print(self.description,end=" ",file=sys.stderr)
|
print(self.description, end=" ", file=sys.stderr)
|
||||||
print("took {} seconds.".format(self.duration),file=sys.stderr)
|
print("took {} seconds.".format(self.duration), file=sys.stderr)
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
from drstats.db import get_db, Db,get_users
|
from drstats.db import get_db, Db, get_users
|
||||||
from drstats import sync
|
from drstats import sync
|
||||||
import asyncio
|
import asyncio
|
||||||
from drstats.duration import Duration
|
from drstats.duration import Duration
|
||||||
@ -188,7 +188,9 @@ async def score_most_ignored_last_7_days():
|
|||||||
x = []
|
x = []
|
||||||
y = []
|
y = []
|
||||||
|
|
||||||
for record in db.query("SELECT * FROM score_ignored_most_last_7_days LIMIT 15"):
|
for record in db.query(
|
||||||
|
"SELECT * FROM score_ignored_most_last_7_days LIMIT 15"
|
||||||
|
):
|
||||||
x.append(record["username"])
|
x.append(record["username"])
|
||||||
y.append(record["userscore"])
|
y.append(record["userscore"])
|
||||||
|
|
||||||
@ -199,7 +201,9 @@ async def score_most_ignored_last_7_days():
|
|||||||
plt.ylabel("Times ignored")
|
plt.ylabel("Times ignored")
|
||||||
plt.title("Most ignored based on score regarding last 7 days")
|
plt.title("Most ignored based on score regarding last 7 days")
|
||||||
plt.legend()
|
plt.legend()
|
||||||
plt.savefig(f"export/score_ignored_most_last_7_days_{get_date_range_str()}.png")
|
plt.savefig(
|
||||||
|
f"export/score_ignored_most_last_7_days_{get_date_range_str()}.png"
|
||||||
|
)
|
||||||
plt_reset()
|
plt_reset()
|
||||||
# plt.show()
|
# plt.show()
|
||||||
|
|
||||||
@ -226,6 +230,7 @@ async def score_last_7_days():
|
|||||||
plt_reset()
|
plt_reset()
|
||||||
# plt.show()
|
# plt.show()
|
||||||
|
|
||||||
|
|
||||||
async def user_score_per_day(username):
|
async def user_score_per_day(username):
|
||||||
with Duration("User {} score per day".format(username)):
|
with Duration("User {} score per day".format(username)):
|
||||||
plt = figure_inc()
|
plt = figure_inc()
|
||||||
@ -239,28 +244,36 @@ async def user_score_per_day(username):
|
|||||||
x = []
|
x = []
|
||||||
y = []
|
y = []
|
||||||
|
|
||||||
for record in db.query("SELECT * FROM user_stats WHERE username = '{}'".format(username)):
|
for record in db.query(
|
||||||
|
"SELECT * FROM user_stats WHERE username = '{}'".format(username)
|
||||||
|
):
|
||||||
x.append(record["date"])
|
x.append(record["date"])
|
||||||
y.append(record["post_count"])
|
y.append(record["post_count"])
|
||||||
plt.plot(x, y, label="Posts")
|
plt.plot(x, y, label="Posts")
|
||||||
|
|
||||||
x = []
|
x = []
|
||||||
y = []
|
y = []
|
||||||
for record in db.query("SELECT * FROM user_stats WHERE username = '{}'".format(username)):
|
for record in db.query(
|
||||||
|
"SELECT * FROM user_stats WHERE username = '{}'".format(username)
|
||||||
|
):
|
||||||
x.append(record["date"])
|
x.append(record["date"])
|
||||||
y.append(record["ignore_count"])
|
y.append(record["ignore_count"])
|
||||||
plt.plot(x, y, label="Times ignored")
|
plt.plot(x, y, label="Times ignored")
|
||||||
|
|
||||||
x = []
|
x = []
|
||||||
y = []
|
y = []
|
||||||
for record in db.query("SELECT * FROM user_stats WHERE username = '{}'".format(username)):
|
for record in db.query(
|
||||||
|
"SELECT * FROM user_stats WHERE username = '{}'".format(username)
|
||||||
|
):
|
||||||
x.append(record["date"])
|
x.append(record["date"])
|
||||||
y.append(record["upvote_times"])
|
y.append(record["upvote_times"])
|
||||||
plt.plot(x, y, label="Times upvoted")
|
plt.plot(x, y, label="Times upvoted")
|
||||||
|
|
||||||
x = []
|
x = []
|
||||||
y = []
|
y = []
|
||||||
for record in db.query("SELECT * FROM user_stats WHERE username = '{}'".format(username)):
|
for record in db.query(
|
||||||
|
"SELECT * FROM user_stats WHERE username = '{}'".format(username)
|
||||||
|
):
|
||||||
x.append(record["date"])
|
x.append(record["date"])
|
||||||
y.append(record["upvote_total"])
|
y.append(record["upvote_total"])
|
||||||
plt.plot(x, y, label="Sum upvotes")
|
plt.plot(x, y, label="Sum upvotes")
|
||||||
@ -284,7 +297,3 @@ def rant_stats_all():
|
|||||||
asyncio.run(score_last_7_days())
|
asyncio.run(score_last_7_days())
|
||||||
for user in get_users():
|
for user in get_users():
|
||||||
asyncio.run(user_score_per_day(user))
|
asyncio.run(user_score_per_day(user))
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
@ -4,6 +4,7 @@ import json
|
|||||||
import asyncio
|
import asyncio
|
||||||
from pprint import pprint as pp
|
from pprint import pprint as pp
|
||||||
import requests
|
import requests
|
||||||
|
|
||||||
dr = Devrant()
|
dr = Devrant()
|
||||||
db = get_db()
|
db = get_db()
|
||||||
|
|
||||||
@ -38,6 +39,7 @@ async def get_recent_rants(start_from=1, page_size=10):
|
|||||||
yield rant
|
yield rant
|
||||||
start_from += page_size
|
start_from += page_size
|
||||||
|
|
||||||
|
|
||||||
async def sync_rants():
|
async def sync_rants():
|
||||||
count = 0
|
count = 0
|
||||||
start_from = 0
|
start_from = 0
|
||||||
@ -54,6 +56,7 @@ async def sync_rants():
|
|||||||
except:
|
except:
|
||||||
print("Rate limit of server exceeded. That's normal.s")
|
print("Rate limit of server exceeded. That's normal.s")
|
||||||
|
|
||||||
|
|
||||||
async def sync_comments():
|
async def sync_comments():
|
||||||
comments_synced = 0
|
comments_synced = 0
|
||||||
rants_synced = 0
|
rants_synced = 0
|
||||||
|
Loading…
Reference in New Issue
Block a user