aboutsummaryrefslogtreecommitdiffstats
path: root/database.py
diff options
context:
space:
mode:
authorjwansek <eddie.atten.ea29@gmail.com>2023-03-21 14:11:28 +0000
committerjwansek <eddie.atten.ea29@gmail.com>2023-03-21 14:11:28 +0000
commit208e6eb70f0e399b84380c2112dc312c929cf7ea (patch)
tree0903e5a3ac54050d3cc0f90bda3195b4e3a83c49 /database.py
parent7c7082fbc6bbaeb48aded3e2a598130a1c0b343f (diff)
parentcfc2bfbec443ea24f4af0027a077267771b0698f (diff)
downloadeda.gay-208e6eb70f0e399b84380c2112dc312c929cf7ea.tar.gz
eda.gay-208e6eb70f0e399b84380c2112dc312c929cf7ea.zip
Merge branch 'master' of git.eda.gay:eda.gay
Diffstat (limited to 'database.py')
-rwxr-xr-xdatabase.py75
1 files changed, 59 insertions, 16 deletions
diff --git a/database.py b/database.py
index 78cf237..1877ab7 100755
--- a/database.py
+++ b/database.py
@@ -3,7 +3,9 @@ from dataclasses import dataclass
from github import Github
from lxml import html
import configparser
+import curiouscat
import threading
+import operator
import datetime
import requests
import twython
@@ -225,7 +227,9 @@ class Database:
threading.Thread(target = update_cache).start()
out = {}
with self.__connection.cursor() as cursor:
- cursor.execute("SELECT tweet_id, tweeted_at, tweet FROM diary WHERE replying_to IS NULL ORDER BY tweeted_at DESC;")
+ # cursor.execute("SELECT tweet_id, tweeted_at, tweet FROM diary WHERE replying_to IS NULL ORDER BY tweeted_at DESC;")
+ # attempt to ignore curiouscat automatic tweets by comparing with the q&a table
+ cursor.execute("SELECT tweet_id, tweeted_at, tweet FROM diary WHERE replying_to IS NULL AND tweet_id NOT IN (SELECT tweet_id FROM diary INNER JOIN qnas ON SUBSTRING(tweet, 1, 16) = SUBSTRING(question, 1, 16)) ORDER BY tweeted_at DESC;")
for tweet_id, tweeted_at, tweet_text in cursor.fetchall():
# print(tweet_id, tweeted_at, tweet_text)
out[tweeted_at] = [{
@@ -304,9 +308,45 @@ class Database:
self.__connection.commit()
+ def get_curiouscat_username(self):
+ with self.__connection.cursor() as cursor:
+ cursor.execute("SELECT link FROM headerLinks WHERE name = 'curiouscat';")
+ return urlparse(cursor.fetchone()[0]).path.split("/")[1]
+
+ def append_curiouscat_qnas(self, qnas):
+ with self.__connection.cursor() as cursor:
+ for qna in qnas:
+ cursor.execute("SELECT curiouscat_id FROM qnas WHERE curiouscat_id = %s;", (qna["id"], ))
+ if cursor.fetchone() is None:
+
+ cursor.execute("INSERT INTO `qnas` VALUES (%s, %s, %s, %s, %s);", (
+ qna["id"], qna["link"], qna["datetime"], qna["question"], qna["answer"]
+ ))
+ print("Appended question with timestamp %s" % datetime.datetime.fromtimestamp(qna["id"]).isoformat())
+
+ else:
+ print("Skipped question with timestamp %s" % datetime.datetime.fromtimestamp(qna["id"]).isoformat())
+ self.__connection.commit()
+
+ def get_biggest_curiouscat_timestamp(self):
+ with self.__connection.cursor() as cursor:
+ cursor.execute("SELECT MAX(`timestamp`) FROM `qnas`;")
+ return cursor.fetchone()[0]
+
+ def get_curiouscat_qnas(self):
+ with self.__connection.cursor() as cursor:
+ cursor.execute("SELECT * FROM qnas;")
+ return sorted(cursor.fetchall(), key = operator.itemgetter(2), reverse = True)
+
def update_cache():
# print("updating cache...")
with Database() as db:
+ db.append_curiouscat_qnas(
+ curiouscat.get_all_curiouscat_qnas_before(
+ db.get_curiouscat_username(),
+ db.get_biggest_curiouscat_timestamp()
+ )
+ )
db.fetch_diary()
db.update_twitter_cache(request_recent_tweets(10000))
# print("Done updating twitter cache...")
@@ -339,23 +379,26 @@ def request_recent_commits(since = datetime.datetime.now() - datetime.timedelta(
out = []
for repo in g.get_user().get_repos():
# print(repo.name, list(repo.get_branches()))
- for commit in repo.get_commits(since = since):
- out.append({
- "repo": repo.name,
- "message": commit.commit.message,
- "url": commit.html_url,
- "datetime": commit.commit.author.date,
- "stats": {
- "additions": commit.stats.additions,
- "deletions": commit.stats.deletions,
- "total": commit.stats.total
- }
- })
+ try:
+ for commit in repo.get_commits(since = since):
+ out.append({
+ "repo": repo.name,
+ "message": commit.commit.message,
+ "url": commit.html_url,
+ "datetime": commit.commit.author.date,
+ "stats": {
+ "additions": commit.stats.additions,
+ "deletions": commit.stats.deletions,
+ "total": commit.stats.total
+ }
+ })
+ except Exception as e:
+ print(e)
+
return sorted(out, key = lambda a: a["datetime"], reverse = True)
if __name__ == "__main__":
- import app
+ # print(request_recent_commits())
with Database() as db:
- print(app.get_sidebar_img(db))
- # print(db.get_sidebar_images())
+ print(db.get_curiouscat_qnas())