Changed notifications management to Mastodon API
This commit is contained in:
parent
eb2df2d0a8
commit
6a5638cfb7
2 changed files with 115 additions and 338 deletions
452
mastochess.py
452
mastochess.py
|
@ -4,6 +4,7 @@ import os.path
|
|||
import re
|
||||
import unidecode
|
||||
from datetime import datetime, timedelta
|
||||
import time
|
||||
from mastodon import Mastodon
|
||||
from email.mime.multipart import MIMEMultipart
|
||||
from email.mime.text import MIMEText
|
||||
|
@ -20,6 +21,7 @@ from cairosvg import svg2png
|
|||
import chess.pgn
|
||||
from PIL import Image, ImageFont, ImageDraw
|
||||
import math
|
||||
import pdb
|
||||
|
||||
def cleanhtml(raw_html):
|
||||
cleanr = re.compile('<.*?>')
|
||||
|
@ -131,75 +133,6 @@ def create_panel(username, rating, played_games, wins):
|
|||
out = Image.alpha_composite(base, txt)
|
||||
out.save('app/panel/' + username + '_panel.png')
|
||||
|
||||
def get_bot_id():
|
||||
|
||||
###################################################################################################################################
|
||||
# get bot_id from bot's username
|
||||
|
||||
try:
|
||||
|
||||
conn = None
|
||||
|
||||
conn = psycopg2.connect(database = mastodon_db, user = mastodon_db_user, password = "", host = "/var/run/postgresql", port = "5432")
|
||||
|
||||
cur = conn.cursor()
|
||||
|
||||
cur.execute("select id from accounts where username = (%s) and domain is null", (bot_username,))
|
||||
|
||||
row = cur.fetchone()
|
||||
|
||||
if row != None:
|
||||
|
||||
bot_id = row[0]
|
||||
|
||||
cur.close()
|
||||
|
||||
return bot_id
|
||||
|
||||
except (Exception, psycopg2.DatabaseError) as error:
|
||||
|
||||
print(error)
|
||||
|
||||
finally:
|
||||
|
||||
if conn is not None:
|
||||
|
||||
conn.close()
|
||||
|
||||
def get_user_domain(account_id):
|
||||
|
||||
try:
|
||||
|
||||
conn = None
|
||||
|
||||
conn = psycopg2.connect(database = mastodon_db, user = mastodon_db_user, password = "", host = "/var/run/postgresql", port = "5432")
|
||||
|
||||
cur = conn.cursor()
|
||||
|
||||
cur.execute("select username, domain from accounts where id=(%s)", (account_id,))
|
||||
|
||||
row = cur.fetchone()
|
||||
|
||||
if row != None:
|
||||
|
||||
username = row[0]
|
||||
|
||||
domain = row[1]
|
||||
|
||||
cur.close()
|
||||
|
||||
return (username, domain)
|
||||
|
||||
except (Exception, psycopg2.DatabaseError) as error:
|
||||
|
||||
print(error)
|
||||
|
||||
finally:
|
||||
|
||||
if conn is not None:
|
||||
|
||||
conn.close()
|
||||
|
||||
def get_piece_name(captured_piece):
|
||||
|
||||
if captured_piece == 1:
|
||||
|
@ -240,53 +173,7 @@ def get_piece_name(captured_piece):
|
|||
|
||||
return piece_name
|
||||
|
||||
def get_mentions():
|
||||
|
||||
account_id_lst = []
|
||||
|
||||
status_id_lst = []
|
||||
|
||||
conn = None
|
||||
|
||||
try:
|
||||
|
||||
conn = psycopg2.connect(database = mastodon_db, user = mastodon_db_user, password = "", host = "/var/run/postgresql", port = "5432")
|
||||
|
||||
cur = conn.cursor()
|
||||
|
||||
select_query = "select account_id, id from statuses where created_at + interval '60 minutes' > now() - interval '5 minutes'"
|
||||
select_query += " and id=any (select status_id from mentions where account_id=(%s)) order by created_at asc"
|
||||
|
||||
cur.execute(select_query, (str(bot_id),))
|
||||
|
||||
rows = cur.fetchall()
|
||||
|
||||
for row in rows:
|
||||
|
||||
replied = check_replies(row[1])
|
||||
|
||||
if not replied:
|
||||
|
||||
account_id_lst.append(row[0])
|
||||
|
||||
status_id_lst.append(row[1])
|
||||
|
||||
cur.close()
|
||||
|
||||
return (account_id_lst, status_id_lst)
|
||||
|
||||
except (Exception, psycopg2.DatabaseError) as error:
|
||||
|
||||
print(error)
|
||||
|
||||
finally:
|
||||
|
||||
if conn is not None:
|
||||
|
||||
conn.close()
|
||||
|
||||
|
||||
def get_mention_langs(account_id):
|
||||
def get_player_langs(account_id):
|
||||
|
||||
lang_changed = False
|
||||
|
||||
|
@ -360,7 +247,6 @@ def get_lang(player):
|
|||
|
||||
conn.close()
|
||||
|
||||
|
||||
def set_lang(account_id, username, new_lang):
|
||||
|
||||
lang_changed = False
|
||||
|
@ -441,119 +327,6 @@ def get_locale( parameter, player_lang):
|
|||
print(language_filepath + " Missing parameter %s "%parameter)
|
||||
sys.exit(0)
|
||||
|
||||
def get_notification_data(status_id):
|
||||
|
||||
conn = None
|
||||
|
||||
try:
|
||||
|
||||
conn = psycopg2.connect(database = mastodon_db, user = mastodon_db_user, password = "", host = "/var/run/postgresql", port = "5432")
|
||||
|
||||
cur = conn.cursor()
|
||||
|
||||
select_query = "select text, visibility, url from statuses where id=(%s)"
|
||||
|
||||
cur.execute(select_query, (status_id,))
|
||||
|
||||
row = cur.fetchone()
|
||||
|
||||
text = row[0]
|
||||
|
||||
if row[1] == 0:
|
||||
visibility = 'public'
|
||||
elif row[1] == 1:
|
||||
visibility = 'unlisted'
|
||||
elif row[1] == 2:
|
||||
visibility = 'private'
|
||||
elif row[1] == 3:
|
||||
visibility = 'direct'
|
||||
|
||||
url = row[2]
|
||||
|
||||
cur.close()
|
||||
|
||||
return (text, visibility, url)
|
||||
|
||||
except (Exception, psycopg2.DatabaseError) as error:
|
||||
|
||||
print(error)
|
||||
|
||||
finally:
|
||||
|
||||
if conn is not None:
|
||||
|
||||
conn.close()
|
||||
|
||||
def update_replies(status_id, username, now):
|
||||
|
||||
post_id = status_id
|
||||
|
||||
try:
|
||||
|
||||
conn = None
|
||||
|
||||
conn = psycopg2.connect(database = chess_db, user = chess_db_user, password = "", host = "/var/run/postgresql", port = "5432")
|
||||
|
||||
cur = conn.cursor()
|
||||
|
||||
insert_sql = "insert into botreplies(status_id, query_user, status_created_at) values(%s, %s, %s) ON CONFLICT DO NOTHING"
|
||||
|
||||
cur.execute(insert_sql, (post_id, username, now))
|
||||
|
||||
conn.commit()
|
||||
|
||||
cur.close()
|
||||
|
||||
except (Exception, psycopg2.DatabaseError) as error:
|
||||
|
||||
sys.exit(error)
|
||||
|
||||
finally:
|
||||
|
||||
if conn is not None:
|
||||
|
||||
conn.close()
|
||||
|
||||
def check_replies(status_id):
|
||||
|
||||
post_id = status_id
|
||||
|
||||
replied = False
|
||||
|
||||
try:
|
||||
|
||||
conn = None
|
||||
|
||||
conn = psycopg2.connect(database = chess_db, user = chess_db_user, password = "", host = "/var/run/postgresql", port = "5432")
|
||||
|
||||
cur = conn.cursor()
|
||||
|
||||
cur.execute("select status_id from botreplies where status_id=(%s)", (post_id,))
|
||||
|
||||
row = cur.fetchone()
|
||||
|
||||
if row != None:
|
||||
|
||||
replied = True
|
||||
|
||||
else:
|
||||
|
||||
replied = False
|
||||
|
||||
cur.close()
|
||||
|
||||
return replied
|
||||
|
||||
except (Exception, psycopg2.DatabaseError) as error:
|
||||
|
||||
sys.exit(error)
|
||||
|
||||
finally:
|
||||
|
||||
if conn is not None:
|
||||
|
||||
conn.close()
|
||||
|
||||
def current_games():
|
||||
|
||||
player1_name_lst = []
|
||||
|
@ -1635,24 +1408,46 @@ if __name__ == '__main__':
|
|||
|
||||
now = datetime.now()
|
||||
|
||||
bot_id = get_bot_id()
|
||||
####################################################################
|
||||
# get notifications
|
||||
|
||||
account_id_lst, status_id_lst = get_mentions()
|
||||
notifications = mastodon.notifications()
|
||||
|
||||
if len(account_id_lst) == 0:
|
||||
if len(notifications) == 0:
|
||||
|
||||
print('No mentions')
|
||||
|
||||
sys.exit(0)
|
||||
|
||||
i = 0
|
||||
|
||||
while i < len(account_id_lst):
|
||||
while i < len(notifications):
|
||||
|
||||
account_id = account_id_lst[i]
|
||||
notification_id = notifications[i].id
|
||||
|
||||
username, domain = get_user_domain(account_id)
|
||||
if notifications[i].type != 'mention':
|
||||
|
||||
lang_changed, player_lang = get_mention_langs(account_id)
|
||||
i += 1
|
||||
|
||||
print(f'dismissing notification {notification_id}')
|
||||
|
||||
mastodon.notifications_dismiss(notification_id)
|
||||
|
||||
continue
|
||||
|
||||
account_id = notifications[i].account.id
|
||||
|
||||
username = notifications[i].account.acct
|
||||
|
||||
status_id = notifications[i].status.id
|
||||
|
||||
text = notifications[i].status.content
|
||||
|
||||
visibility = notifications[i].status.visibility
|
||||
|
||||
url = notifications[i].status.uri
|
||||
|
||||
lang_changed, player_lang = get_player_langs(account_id)
|
||||
|
||||
if player_lang == 'ca':
|
||||
|
||||
|
@ -1686,24 +1481,6 @@ if __name__ == '__main__':
|
|||
|
||||
sys.exit(0)
|
||||
|
||||
status_id = status_id_lst[i]
|
||||
|
||||
text, visibility, url = get_notification_data(status_id)
|
||||
|
||||
if domain != None:
|
||||
|
||||
username = username + '@' + domain
|
||||
|
||||
status_id = status_id_lst[i]
|
||||
|
||||
replied = check_replies(status_id)
|
||||
|
||||
if replied == True:
|
||||
|
||||
i += 1
|
||||
|
||||
continue
|
||||
|
||||
# listen them or not
|
||||
|
||||
search_new = get_locale("search_new", player_lang)
|
||||
|
@ -1746,7 +1523,7 @@ if __name__ == '__main__':
|
|||
|
||||
new_game_started = get_locale("new_game_started", player_lang)
|
||||
|
||||
toot_text = '@'+username + ' ' + new_game_started + '\n'
|
||||
toot_text = f'@{username} {new_game_started} \n'
|
||||
|
||||
toot_text += '\n'
|
||||
|
||||
|
@ -1758,7 +1535,7 @@ if __name__ == '__main__':
|
|||
|
||||
new_game(toot_url)
|
||||
|
||||
update_replies(status_id, username, now)
|
||||
mastodon.notifications_dismiss(notification_id)
|
||||
|
||||
elif query_word == search_new and game_waiting:
|
||||
|
||||
|
@ -1780,22 +1557,18 @@ if __name__ == '__main__':
|
|||
|
||||
playing_with = get_locale("playing_with", player_lang1)
|
||||
|
||||
toot_text = '@'+username + ' ' + playing_with + ' ' + white_user + "\n"
|
||||
|
||||
toot_text += '\n'
|
||||
toot_text = f'@{username} {playing_with} {white_user} \n\n'
|
||||
|
||||
player_lang2 = get_lang(white_user)
|
||||
|
||||
your_turn = get_locale("your_turn", player_lang2)
|
||||
|
||||
toot_text += '@'+white_user + ': ' + your_turn + "\n"
|
||||
|
||||
toot_text += '\n'
|
||||
toot_text += f'@{white_user}: {your_turn}\n\n'
|
||||
|
||||
game_name = get_locale("game_name", player_lang2)
|
||||
chess_hashtag = get_locale("chess_hashtag", player_lang)
|
||||
|
||||
toot_text += game_name + ': ' + str(game_id) + ' ' + chess_hashtag + '\n'
|
||||
toot_text += f"{game_name}: {str(game_id)} {chess_hashtag} \n"
|
||||
|
||||
image_id = mastodon.media_post(board_file, "image/png").id
|
||||
|
||||
|
@ -1805,7 +1578,7 @@ if __name__ == '__main__':
|
|||
|
||||
update_moves(username, game_moves)
|
||||
|
||||
update_replies(status_id, username, now)
|
||||
mastodon.notifications_dismiss(notification_id)
|
||||
|
||||
elif query_word[:search_send_slicing] == search_send:
|
||||
|
||||
|
@ -1820,7 +1593,7 @@ if __name__ == '__main__':
|
|||
username_lang = get_lang(username)
|
||||
send_error = get_locale("send_error", username_lang)
|
||||
|
||||
toot_text = '@'+username + ' ' + send_error
|
||||
toot_text = f'@{username} {send_error}'
|
||||
|
||||
elif emailed == True and game_found == True:
|
||||
|
||||
|
@ -1828,7 +1601,7 @@ if __name__ == '__main__':
|
|||
game_number_anotations = get_locale("game_number_anotations", username_lang)
|
||||
anotations_sent = get_locale("anotations_sent", username_lang)
|
||||
|
||||
toot_text = '@'+username + ' ' + game_number_anotations + str(game_id) + ' ' + anotations_sent
|
||||
toot_text = f'@{username} {game_number_anotations} {str(game_id)} {anotations_sent}'
|
||||
|
||||
elif emailed == False and game_found == False:
|
||||
|
||||
|
@ -1837,7 +1610,7 @@ if __name__ == '__main__':
|
|||
username_lang = get_lang(username)
|
||||
cant_send_to_fediverse_account = get_locale("cant_send_to_fediverse_account", username_lang)
|
||||
|
||||
toot_text = '@'+username + ' ' + cant_send_to_fediverse_account
|
||||
toot_text = f'@{username} {cant_send_to_fediverse_account}'
|
||||
|
||||
else:
|
||||
|
||||
|
@ -1845,11 +1618,11 @@ if __name__ == '__main__':
|
|||
game_no_exists = get_locale("game_no_exists", username_lang)
|
||||
it_not_exists = get_locale("it_not_exists", username_lang)
|
||||
|
||||
toot_text = '@'+username + ' ' + game_no_exists + str(game_id) + ' ' + it_not_exists
|
||||
toot_text = f'@{username} {game_no_exists} {str(game_id)} {it_not_exists}'
|
||||
|
||||
mastodon.status_post(toot_text, in_reply_to_id=status_id,visibility=visibility)
|
||||
|
||||
update_replies(status_id, username, now)
|
||||
mastodon.notifications_dismiss(notification_id)
|
||||
|
||||
elif query_word == search_panel:
|
||||
|
||||
|
@ -1857,7 +1630,7 @@ if __name__ == '__main__':
|
|||
|
||||
create_panel(username, rating, played_games, wins)
|
||||
|
||||
toot_text = '@'+username
|
||||
toot_text = f'@{username}'
|
||||
|
||||
saved_panel = 'app/panel/' + username + '_panel.png'
|
||||
|
||||
|
@ -1865,7 +1638,7 @@ if __name__ == '__main__':
|
|||
|
||||
mastodon.status_post(toot_text, in_reply_to_id=status_id, visibility=visibility, media_ids={image_id})
|
||||
|
||||
update_replies(status_id, username, now)
|
||||
mastodon.notifications_dismiss(notification_id)
|
||||
|
||||
elif query_word[:4] == search_config:
|
||||
|
||||
|
@ -1873,13 +1646,13 @@ if __name__ == '__main__':
|
|||
|
||||
lang_changed, player_lang = set_lang(account_id, username, new_lang)
|
||||
|
||||
update_replies(status_id, username, now)
|
||||
mastodon.notifications_dismiss(notification_id)
|
||||
|
||||
if lang_changed:
|
||||
|
||||
locale_change_successfully = get_locale("locale_change_successfully", new_lang)
|
||||
|
||||
toot_text = '@'+username + ' ' + locale_change_successfully + ' ' + new_lang
|
||||
toot_text = f'@{username} {locale_change_successfully} {new_lang}'
|
||||
|
||||
mastodon.status_post(toot_text, in_reply_to_id=status_id, visibility=visibility)
|
||||
|
||||
|
@ -1887,7 +1660,7 @@ if __name__ == '__main__':
|
|||
|
||||
locale_not_changed = get_locale("locale_not_changed", player_lang)
|
||||
|
||||
toot_text = '@'+username + ' ' + new_lang + ' ' + locale_not_changed
|
||||
toot_text = f'@{username} {new_lang} {locale_not_changed}'
|
||||
|
||||
mastodon.status_post(toot_text, in_reply_to_id=status_id, visibility=visibility)
|
||||
|
||||
|
@ -1895,7 +1668,7 @@ if __name__ == '__main__':
|
|||
|
||||
toot_help()
|
||||
|
||||
help_text = '@'+username
|
||||
help_text = f'@{username}'
|
||||
|
||||
help_panel = 'app/panel/help_panel.png'
|
||||
|
||||
|
@ -1903,11 +1676,11 @@ if __name__ == '__main__':
|
|||
|
||||
mastodon.status_post(help_text, in_reply_to_id=status_id,visibility=visibility, media_ids={image_id})
|
||||
|
||||
update_replies(status_id, username, now)
|
||||
mastodon.notifications_dismiss(notification_id)
|
||||
|
||||
else:
|
||||
|
||||
update_replies(status_id, username, now)
|
||||
mastodon.notifications_dismiss(notification_id)
|
||||
|
||||
elif reply and is_playing:
|
||||
|
||||
|
@ -1917,11 +1690,11 @@ if __name__ == '__main__':
|
|||
|
||||
game_already_started = get_locale("game_already_started", player_lang1)
|
||||
|
||||
toot_text = '@'+username + ' ' + game_already_started + '\n'
|
||||
toot_text = f'@{username} {game_already_started} \n'
|
||||
|
||||
if black_user != '':
|
||||
|
||||
toot_text += '@'+white_user + ' / ' + '@'+black_user + '\n'
|
||||
toot_text += f'@{white_user} / @{black_user}\n'
|
||||
|
||||
else:
|
||||
|
||||
|
@ -1934,7 +1707,7 @@ if __name__ == '__main__':
|
|||
game_name = get_locale("game_name", player_lang1)
|
||||
chess_hashtag = get_locale("chess_hashtag", player_lang1)
|
||||
|
||||
toot_text += game_name + ': ' + str(game_id) + ' ' + chess_hashtag + '\n'
|
||||
toot_text += f'{game_name}: {str(game_id)} {chess_hashtag} \n'
|
||||
|
||||
board = chess.Board(on_going_game)
|
||||
|
||||
|
@ -1948,7 +1721,7 @@ if __name__ == '__main__':
|
|||
|
||||
mastodon.status_post(toot_text, in_reply_to_id=status_id,visibility=visibility, media_ids={image_id})
|
||||
|
||||
update_replies(status_id, username, now)
|
||||
mastodon.notifications_dismiss(notification_id)
|
||||
|
||||
elif query_word[:search_move_slicing] == search_move and playing_user == username:
|
||||
|
||||
|
@ -1996,11 +1769,11 @@ if __name__ == '__main__':
|
|||
|
||||
is_not_legal_move = get_locale("is_not_legal_move", player_lang)
|
||||
|
||||
toot_text = '@'+username + ': ' + moving + ' ' + is_not_legal_move + '\n'
|
||||
toot_text = f'@{username}: {moving} {is_not_legal_move} \n'
|
||||
|
||||
mastodon.status_post(toot_text, in_reply_to_id=status_id,visibility=visibility)
|
||||
|
||||
update_replies(status_id, username, now)
|
||||
mastodon.notifications_dismiss(notification_id)
|
||||
|
||||
else:
|
||||
|
||||
|
@ -2061,7 +1834,7 @@ if __name__ == '__main__':
|
|||
player_lang = get_lang(playing_user)
|
||||
check_done = get_locale("check_done", player_lang)
|
||||
|
||||
toot_text = "@"+playing_user + " " + username + ' ' + check_done + '\n'
|
||||
toot_text = f"@{playing_user} {username} {check_done}\n"
|
||||
|
||||
elif check == True and checkmate == True:
|
||||
|
||||
|
@ -2071,23 +1844,23 @@ if __name__ == '__main__':
|
|||
check_mate_movements = get_locale("check_mate_movements", player_lang1)
|
||||
the_winner_is = get_locale("the_winner_is", player_lang1)
|
||||
|
||||
toot_text = '\n' + check_mate + ' ' + str(game_moves) + ' ' + check_mate_movements + '\n\n' + the_winner_is + ' ' + "@"+username + '\n'
|
||||
toot_text = f'\n{check_mate} {str(game_moves)} {check_mate_movements}\n\n{the_winner_is} @{username}\n'
|
||||
|
||||
winned_games = get_locale("winned_games", player_lang1)
|
||||
|
||||
toot_text += '\n' + winned_games + "\n"
|
||||
toot_text += f'\n{winned_games}\n'
|
||||
|
||||
rating, played_games, wins = get_stats(username)
|
||||
|
||||
wins_of_many = get_locale("wins_of_many", player_lang1)
|
||||
|
||||
toot_text += username + ': ' + str(wins) + ' ' + wins_of_many + ' ' + str(played_games) + ' (Elo: ' + str(round(rating)) + ')' + '\n'
|
||||
toot_text += f'{username}: {str(wins)} {wins_of_many} {str(played_games)} (Elo: {str(round(rating))})\n'
|
||||
|
||||
player_lang2 = get_lang(playing_user)
|
||||
|
||||
well_done = get_locale("well_done", player_lang2)
|
||||
|
||||
toot_text += "\n@"+playing_user + ': ' + well_done + "\n"
|
||||
toot_text += f"\n@{playing_user}: {well_done}\n"
|
||||
|
||||
rating, played_games, wins = get_stats(playing_user)
|
||||
|
||||
|
@ -2095,25 +1868,25 @@ if __name__ == '__main__':
|
|||
|
||||
wins_of_many = get_locale("wins_of_many", player_lang2)
|
||||
|
||||
toot_text += '\n\n' + winned_games + "\n"
|
||||
toot_text += f'\n\n{winned_games}\n'
|
||||
|
||||
toot_text += playing_user + ': ' + str(wins) + ' ' + wins_of_many + ' ' + str(played_games) + ' (Elo: ' + str(round(rating)) + ')' + '\n'
|
||||
toot_text += f'{playing_user}: {str(wins)} {wins_of_many} {str(played_games)} (Elo: {str(round(rating))})\n'
|
||||
|
||||
elif check == False and stalemate == True:
|
||||
|
||||
toot_text = stalemate_str + ' (' + str(game_moves) + ')' + '\n'
|
||||
|
||||
toot_text += '\n@'+playing_user + ', ' + '@'+username + "\n"
|
||||
toot_text += f'\n@{playing_user}, @{username}\n'
|
||||
|
||||
toot_text += '\n' + winned_games + "\n"
|
||||
toot_text += f'\n{winned_games}\n'
|
||||
|
||||
rating, played_games, wins = get_stats(username)
|
||||
|
||||
toot_text += username + ': ' + str(wins) + ' ' + wins_of_many + ' ' + str(played_games) + "\n"
|
||||
toot_text += f'{username}: {str(wins)} {wins_of_many} {str(played_games)}\n'
|
||||
|
||||
rating, played_games, wins = get_stats(playing_user)
|
||||
|
||||
toot_text += playing_user + ': ' + str(wins) + ' ' + wins_of_many + ' ' + str(played_games) + "\n"
|
||||
toot_text += f'{playing_user}: {str(wins)} {wins_of_many} {str(played_games)}\n'
|
||||
|
||||
else:
|
||||
|
||||
|
@ -2121,20 +1894,20 @@ if __name__ == '__main__':
|
|||
|
||||
your_turn = get_locale("your_turn", player_lang)
|
||||
|
||||
toot_text = '@'+playing_user + ' ' + your_turn + '\n'
|
||||
toot_text = f'@{playing_user} {your_turn}\n'
|
||||
|
||||
if capture == True and checkmate == False:
|
||||
|
||||
player_lang = get_lang(playing_user)
|
||||
lost_piece = get_locale("lost_piece", player_lang)
|
||||
|
||||
toot_text += '\n' + lost_piece + ' ' + piece_name + '!\n'
|
||||
toot_text += f'\n{lost_piece} {piece_name}!\n'
|
||||
|
||||
game_name = get_locale("game_name", player_lang)
|
||||
|
||||
chess_hashtag = get_locale("chess_hashtag", player_lang)
|
||||
|
||||
toot_text += '\n' + game_name + ': ' + str(game_id) + ' ' + chess_hashtag + '\n'
|
||||
toot_text += f'\n{game_name}: {str(game_id)} {chess_hashtag}\n'
|
||||
|
||||
if username == white_user:
|
||||
|
||||
|
@ -2176,7 +1949,7 @@ if __name__ == '__main__':
|
|||
|
||||
update_moves(username, game_moves)
|
||||
|
||||
update_replies(status_id, username, now)
|
||||
mastodon.notifications_dismiss(notification_id)
|
||||
|
||||
except ValueError as v_error:
|
||||
|
||||
|
@ -2185,11 +1958,11 @@ if __name__ == '__main__':
|
|||
username_lang = get_lang(username)
|
||||
not_legal_move_str = get_locale("not_legal_move_str", username_lang)
|
||||
|
||||
toot_text = '@'+username + ' ' + not_legal_move_str + ' ' + moving + '!?)\n'
|
||||
toot_text = f'@{username} {not_legal_move_str} {moving}!?)\n'
|
||||
|
||||
mastodon.status_post(toot_text, in_reply_to_id=status_id,visibility=visibility)
|
||||
|
||||
update_replies(status_id, username, now)
|
||||
mastodon.notifications_dismiss(notification_id)
|
||||
|
||||
pass
|
||||
|
||||
|
@ -2200,11 +1973,11 @@ if __name__ == '__main__':
|
|||
username_lang = get_lang(username)
|
||||
not_legal_move_str = get_locale("not_legal_move_str", username_lang)
|
||||
|
||||
toot_text = '@'+username + ' ' + not_legal_move_str + ' ' + moving + '!?)\n'
|
||||
toot_text = f'@{username} {not_legal_move_str} {moving}!?)\n'
|
||||
|
||||
mastodon.status_post(toot_text, in_reply_to_id=status_id,visibility=visibility)
|
||||
|
||||
update_replies(status_id, username, now)
|
||||
mastodon.notifications_dismiss(notification_id)
|
||||
|
||||
pass
|
||||
|
||||
|
@ -2220,13 +1993,13 @@ if __name__ == '__main__':
|
|||
|
||||
player_leave_game = get_locale("player_leave_game", player_lang)
|
||||
|
||||
toot_text = '@'+username + ' ' + player_leave_game + ' ' + '@'+black_user
|
||||
toot_text = f'@{username} {player_leave_game} @{black_user}'
|
||||
|
||||
mastodon.status_post(toot_text, in_reply_to_id=status_id,visibility=visibility)
|
||||
|
||||
close_game(username, checkmate)
|
||||
|
||||
update_replies(status_id, username, now)
|
||||
mastodon.notifications_dismiss(notification_id)
|
||||
|
||||
i += 1
|
||||
|
||||
|
@ -2236,13 +2009,13 @@ if __name__ == '__main__':
|
|||
|
||||
player_leave_game = get_locale("player_leave_game", player_lang)
|
||||
|
||||
toot_text = '@'+username + ' ' + player_leave_game + ' ' + '@'+white_user
|
||||
toot_text = f'@{username} {player_leave_game} @{white_user}'
|
||||
|
||||
mastodon.status_post(toot_text, in_reply_to_id=status_id,visibility=visibility)
|
||||
|
||||
close_game(username, checkmate)
|
||||
|
||||
update_replies(status_id, username, now)
|
||||
mastodon.notifications_dismiss(notification_id)
|
||||
|
||||
i += 1
|
||||
|
||||
|
@ -2252,13 +2025,13 @@ if __name__ == '__main__':
|
|||
|
||||
leave_waiting_game = get_locale("leave_waiting_game", player_lang)
|
||||
|
||||
toot_text = '@'+username + ' ' + leave_waiting_game
|
||||
toot_text = f'@{username} {leave_waiting_game}'
|
||||
|
||||
mastodon.status_post(toot_text, in_reply_to_id=status_id, visibility=visibility)
|
||||
|
||||
close_game(username, checkmate)
|
||||
|
||||
update_replies(status_id, username, now)
|
||||
mastodon.notifications_dismiss(notification_id)
|
||||
|
||||
i += 1
|
||||
|
||||
|
@ -2272,7 +2045,7 @@ if __name__ == '__main__':
|
|||
|
||||
started_games = get_locale("started_games", player_lang)
|
||||
|
||||
toot_text = "@"+username + ' ' + started_games + "\n"
|
||||
toot_text = f"@{username} {started_games}\n"
|
||||
|
||||
i = 0
|
||||
while i < len(player1_name_lst):
|
||||
|
@ -2281,7 +2054,7 @@ if __name__ == '__main__':
|
|||
|
||||
game_is_waiting = get_locale("game_is_waiting", player_lang)
|
||||
|
||||
toot_text += '\n' + player1_name_lst[i] + ' / ' + player2_name_lst[i] + ' ' + game_is_waiting + "\n"
|
||||
toot_text += f'\n{player1_name_lst[i]} / {player2_name_lst[i]} {game_is_waiting}\n'
|
||||
|
||||
else:
|
||||
|
||||
|
@ -2289,15 +2062,15 @@ if __name__ == '__main__':
|
|||
|
||||
if next_move_lst[i] == player1_name_lst[i]:
|
||||
|
||||
toot_text += '\n*' + player1_name_lst[i] + ' / ' + player2_name_lst[i] + ' ' + game_is_on_going + '\n'
|
||||
toot_text += f'\n*{player1_name_lst[i]} / {player2_name_lst[i]} {game_is_on_going}\n'
|
||||
|
||||
else:
|
||||
|
||||
toot_text += '\n' + player1_name_lst[i] + ' / *' + player2_name_lst[i] + ' ' + game_is_on_going + '\n'
|
||||
toot_text += f'\n{player1_name_lst[i]} / *{player2_name_lst[i]} {game_is_on_going}\n'
|
||||
|
||||
if game_link_lst[i] != None:
|
||||
|
||||
toot_text += str(game_link_lst[i]) + "\n"
|
||||
toot_text += f'{str(game_link_lst[i])}\n'
|
||||
|
||||
i += 1
|
||||
|
||||
|
@ -2307,11 +2080,11 @@ if __name__ == '__main__':
|
|||
|
||||
no_on_going_games = get_locale("no_on_going_games", player_lang)
|
||||
|
||||
toot_text = '@'+username + ' ' + no_on_going_games + '\n'
|
||||
toot_text = f'@{username} {no_on_going_games}\n'
|
||||
|
||||
mastodon.status_post(toot_text, in_reply_to_id=status_id,visibility=visibility)
|
||||
|
||||
update_replies(status_id, username, now)
|
||||
mastodon.notifications_dismiss(notification_id)
|
||||
|
||||
elif query_word[:search_send_slicing] == search_send:
|
||||
|
||||
|
@ -2327,25 +2100,25 @@ if __name__ == '__main__':
|
|||
|
||||
send_error = get_locale("send_error", username_lang)
|
||||
|
||||
toot_text = '@'+username + ' ' + send_error
|
||||
toot_text = f'@{username} {send_error}'
|
||||
|
||||
elif emailed == True and game_found == True:
|
||||
|
||||
game_number_anotations = get_locale("game_number_anotations", username_lang)
|
||||
anotations_sent = get_locale("anotations_sent", username_lang)
|
||||
|
||||
toot_text = '@'+username + ' ' + game_number_anotations + str(game_id) + ' ' + anotations_sent
|
||||
toot_text = f'@{username} {game_number_anotations} {str(game_id)} {anotations_sent}'
|
||||
|
||||
elif emailed == False and game_found == False:
|
||||
|
||||
game_no_exists = get_locale("game_no_exists", username_lang)
|
||||
it_not_exists = get_locale("it_not_exists", username_lang)
|
||||
|
||||
toot_text = '@'+username + ' ' + game_no_exists + str(game_id) + ' ' + it_not_exists
|
||||
toot_text = f'@{username} {game_no_exists} {str(game_id)} {it_not_exists}'
|
||||
|
||||
mastodon.status_post(toot_text, in_reply_to_id=status_id,visibility=visibility)
|
||||
|
||||
update_replies(status_id, username, now)
|
||||
mastodon.notifications_dismiss(notification_id)
|
||||
|
||||
elif query_word == search_draw:
|
||||
|
||||
|
@ -2363,13 +2136,13 @@ if __name__ == '__main__':
|
|||
winned_games = get_locale("winned_games", player_lang1)
|
||||
wins_of_many = get_locale("wins_of_many", player_lang1)
|
||||
|
||||
toot_text = '@'+white_player + ' ' + draw_and_str + ' ' + '@'+black_player + ' ' + agreed_draw_str + '\n\n'
|
||||
toot_text = f'@{white_player} {draw_and_str} @{black_player} {agreed_draw_str}\n\n'
|
||||
|
||||
toot_text += '\n' + winned_games + "\n"
|
||||
toot_text += f'\n{winned_games}\n'
|
||||
|
||||
rating, played_games, wins = get_stats(white_player)
|
||||
|
||||
toot_text += white_player + ': ' + str(wins) + ' ' + wins_of_many + ' ' + str(played_games) + "\n"
|
||||
toot_text += f'{white_player}: {str(wins)} {wins_of_many} {str(played_games)}\n'
|
||||
|
||||
player_lang2 = get_lang(black_player)
|
||||
draw_and_str = get_locale("draw_and_str", player_lang2)
|
||||
|
@ -2379,13 +2152,13 @@ if __name__ == '__main__':
|
|||
|
||||
if player_lang1 != player_lang2:
|
||||
|
||||
toot_text += '\n@'+white_player + ' ' + draw_and_str + ' ' + '@'+black_player + ' ' + agreed_draw_str + '\n\n'
|
||||
toot_text += f'\n@{white_player} {draw_and_str} @{black_player} {agreed_draw_str}\n\n'
|
||||
|
||||
toot_text += '\n' + winned_games + "\n"
|
||||
toot_text += f'\n{winned_games}\n'
|
||||
|
||||
rating, played_games, wins = get_stats(black_player)
|
||||
|
||||
toot_text += black_player + ': ' + str(wins) + ' ' + wins_of_many + ' ' + str(played_games) + "\n"
|
||||
toot_text += f'{black_player}: {str(wins)} {wins_of_many} {str(played_games)}\n'
|
||||
|
||||
mastodon.status_post(toot_text, in_reply_to_id=status_id,visibility=visibility)
|
||||
|
||||
|
@ -2393,7 +2166,7 @@ if __name__ == '__main__':
|
|||
|
||||
mastodon.status_post(toot_text, in_reply_to_id=status_id,visibility=visibility)
|
||||
|
||||
update_replies(status_id, username, now)
|
||||
mastodon.notifications_dismiss(notification_id)
|
||||
|
||||
elif query_word == search_panel:
|
||||
|
||||
|
@ -2401,7 +2174,7 @@ if __name__ == '__main__':
|
|||
|
||||
create_panel(username, rating, played_games, wins)
|
||||
|
||||
toot_text = '@'+username
|
||||
toot_text = f'@{username}'
|
||||
|
||||
saved_panel = 'app/panel/' + username + '_panel.png'
|
||||
|
||||
|
@ -2409,7 +2182,7 @@ if __name__ == '__main__':
|
|||
|
||||
mastodon.status_post(toot_text, in_reply_to_id=status_id, visibility=visibility, media_ids={image_id})
|
||||
|
||||
update_replies(status_id, username, now)
|
||||
mastodon.notifications_dismiss(notification_id)
|
||||
|
||||
elif query_word[:4] == search_config:
|
||||
|
||||
|
@ -2417,13 +2190,13 @@ if __name__ == '__main__':
|
|||
|
||||
lang_changed, player_lang = set_lang(account_id, username, new_lang)
|
||||
|
||||
update_replies(status_id, username, now)
|
||||
mastodon.notifications_dismiss(notification_id)
|
||||
|
||||
if lang_changed:
|
||||
|
||||
locale_change_successfully = get_locale("locale_change_successfully", new_lang)
|
||||
|
||||
toot_text = '@'+username + ' ' + locale_change_successfully + ' ' + new_lang
|
||||
toot_text = f'@{username} {locale_change_successfully} {new_lang}'
|
||||
|
||||
mastodon.status_post(toot_text, in_reply_to_id=status_id, visibility=visibility)
|
||||
|
||||
|
@ -2431,7 +2204,7 @@ if __name__ == '__main__':
|
|||
|
||||
locale_not_changed = get_locale("locale_not_changed", player_lang)
|
||||
|
||||
toot_text = '@'+username + ' ' + new_lang + ' ' + locale_not_changed
|
||||
toot_text = f'@{username} {new_lang} {locale_not_changed}'
|
||||
|
||||
mastodon.status_post(toot_text, in_reply_to_id=status_id, visibility=visibility)
|
||||
|
||||
|
@ -2439,7 +2212,7 @@ if __name__ == '__main__':
|
|||
|
||||
toot_help()
|
||||
|
||||
help_text = '@'+username
|
||||
help_text = f'@{username}'
|
||||
|
||||
help_panel = 'app/panel/help_panel.png'
|
||||
|
||||
|
@ -2447,7 +2220,7 @@ if __name__ == '__main__':
|
|||
|
||||
mastodon.status_post(help_text, in_reply_to_id=status_id,visibility=visibility, media_ids={image_id})
|
||||
|
||||
update_replies(status_id, username, now)
|
||||
mastodon.notifications_dismiss(notification_id)
|
||||
|
||||
else:
|
||||
|
||||
|
@ -2456,13 +2229,13 @@ if __name__ == '__main__':
|
|||
username_lang = get_lang(username)
|
||||
is_not_your_turn = get_locale("is_not_your_turn", username_lang)
|
||||
|
||||
toot_text = '@'+username + ' ' + is_not_your_turn + '\n'
|
||||
toot_text = f'@{username} {is_not_your_turn}\n'
|
||||
|
||||
else:
|
||||
|
||||
is_the_turn_of = get_locale("is_the_turn_of", player_lang)
|
||||
|
||||
toot_text = '@'+username + ' ' + is_the_turn_of + ' ' + playing_user + "\n"
|
||||
toot_text = f'@{username} {is_the_turn_of} {playing_user}\n'
|
||||
|
||||
toot_text += '\n'
|
||||
|
||||
|
@ -2470,7 +2243,7 @@ if __name__ == '__main__':
|
|||
|
||||
chess_hashtag = get_locale("chess_hashtag", player_lang)
|
||||
|
||||
toot_text += game_name + ': ' + str(game_id) + ' ' + chess_hashtag + '\n'
|
||||
toot_text += f'{game_name}: {str(game_id)} {chess_hashtag}\n'
|
||||
|
||||
board = chess.Board(on_going_game)
|
||||
|
||||
|
@ -2490,8 +2263,11 @@ if __name__ == '__main__':
|
|||
|
||||
mastodon.status_post(toot_text, in_reply_to_id=status_id,visibility=visibility, media_ids={image_id})
|
||||
|
||||
update_replies(status_id, username, now)
|
||||
mastodon.notifications_dismiss(notification_id)
|
||||
|
||||
else:
|
||||
|
||||
mastodon.notifications_dismiss(notification_id)
|
||||
|
||||
i += 1
|
||||
|
||||
|
|
|
@ -1,3 +1,4 @@
|
|||
wheel>=0.36.2a
|
||||
Mastodon.py>=1.5.1
|
||||
chess>=1.3.0
|
||||
psycopg2-binary>=2.8.6
|
||||
|
|
Loading…
Reference in a new issue