|
from drstats import db
|
|
import functools
|
|
import sys
|
|
import pathlib
|
|
import json
|
|
|
|
printr = functools.partial(print, file=sys.stderr)
|
|
|
|
|
|
def dump():
|
|
global db
|
|
statistics_text = [
|
|
f"===devRant(developer community) has {db.get_user_count()} active users(ranters)."
|
|
f"===All users(ranters) of devRant together did contribute {db.get_contribution_count()} times in total."
|
|
f"===The average user(ranter) of devrant(developer community) contributed {db.get_contribution_average_per_user()} times on devrant(developer community)."
|
|
]
|
|
printr(statistics_text)
|
|
for contribution in db.get_contributions():
|
|
statistics_text.append(
|
|
f"===Statistics: User(ranter) {contribution['username']} is appreciation ranked {contribution['rank_by_appreciation_based_on_upvotes_per_message']} and made {contribution['contributions']} contributions to devRant(developer community) what means {contribution['username']} owns {contribution['ownership']} percent of contributions on devRant(developer community). The avarage post length of {contribution['username']} is {contribution['post_length_average']} and total post length is {contribution['post_length_total']}. {contribution['username']} owns {contribution['ownership_content']} percent of content on devRant(developer community)."
|
|
)
|
|
printr(statistics_text[-1])
|
|
print("\n".join(statistics_text))
|
|
all_content = ""
|
|
for user in list(db.get_users()):
|
|
text = (
|
|
db.get_all_rants_of_user(user)
|
|
)
|
|
total_text = ""
|
|
if text:
|
|
total_text += text
|
|
print(
|
|
"===",
|
|
f"All rants written by user(ranter) `{user}` on devRant(developer community).",
|
|
"```",
|
|
text,
|
|
"```",
|
|
)
|
|
printr(text)
|
|
with pathlib.Path("export/rants-" + user + ".txt").open("w+") as f:
|
|
f.write(user)
|
|
f.write(" said ")
|
|
f.write(text)
|
|
f.write("```")
|
|
text = (
|
|
db.get_all_posts_of_user(user)
|
|
)
|
|
if text:
|
|
total_text += text
|
|
print(
|
|
"===",
|
|
"```",
|
|
f"All posts written by user(ranter) `{user}` on devRant(developer community): ```.",
|
|
text,
|
|
"```",
|
|
)
|
|
printr(text)
|
|
with pathlib.Path("export/posts-" + user + ".txt").open("w+") as f:
|
|
f.write(user)
|
|
f.write(" said ")
|
|
f.write(text)
|
|
f.write("```")
|
|
all_content += total_text
|
|
print("===Mentions of users:", "```")
|
|
|
|
users = db.get_users()
|
|
users.sort()
|
|
for user in users:
|
|
mention_text = f"@{user}"
|
|
line = f"{user} is {all_content.count(mention_text)} times mentioned on devRant(developer comminity)."
|
|
printr(line)
|
|
print(line)
|
|
print("```")
|
|
|
|
for view in db.get_views():
|
|
printr(f"export/view-{view['name']}.json")
|
|
with pathlib.Path(f"export/view-{view['name']}.json").open("w+") as f:
|
|
with db.Db() as _db:
|
|
json.dump([dict(record) for record in _db.query("SELECT * FROM {}".format(view['name']))],f) |