mirror of
https://github.com/RYGhub/royalnet.git
synced 2024-11-23 19:44:20 +00:00
Diario author parsing improvements
This commit is contained in:
parent
4f7029baae
commit
9e32ecbac4
1 changed files with 13 additions and 11 deletions
|
@ -217,18 +217,20 @@ def cmd_balurage(bot: telegram.Bot, update: telegram.Update, session: db.Session
|
||||||
bot.send_message(update.message.chat.id, f"😡 Stai sfogando la tua ira sul bot!")
|
bot.send_message(update.message.chat.id, f"😡 Stai sfogando la tua ira sul bot!")
|
||||||
|
|
||||||
|
|
||||||
def find_author(session: db.Session, text: str):
|
def parse_diario(session: db.Session, text: str):
|
||||||
author_match = re.match(r".*(?:—|-{1,2}) ?@?([A-Za-z0-9_]+)$", text)
|
match = re.match(r'"?(.*)"? (?:—|-{1,2}) ?@?([A-Za-z0-9_]+)$', text)
|
||||||
if author_match is None:
|
if match is None:
|
||||||
return None
|
return None
|
||||||
author_string = author_match.group(1).lower()
|
text_string = match.group(1)
|
||||||
author = session.query(db.Royal).filter(db.func.lower(db.Royal.username) == author_string).first().telegram[0]
|
author_string = match.group(2).lower()
|
||||||
if author is not None:
|
royal = session.query(db.Royal).filter(db.func.lower(db.Royal.username) == author_string).first()
|
||||||
return author
|
if royal is not None:
|
||||||
|
author = royal.telegram[0]
|
||||||
|
return author, text_string
|
||||||
author = session.query(db.Telegram).filter(db.func.lower(db.Telegram.username) == author_string).first()
|
author = session.query(db.Telegram).filter(db.func.lower(db.Telegram.username) == author_string).first()
|
||||||
if author is not None:
|
if author is not None:
|
||||||
return author
|
return author, text_string
|
||||||
return None
|
return None, text_string
|
||||||
|
|
||||||
|
|
||||||
@command
|
@command
|
||||||
|
@ -241,7 +243,7 @@ def cmd_diario(bot: telegram.Bot, update: telegram.Update, session: db.Session):
|
||||||
try:
|
try:
|
||||||
text = update.message.text.split(" ", 1)[1]
|
text = update.message.text.split(" ", 1)[1]
|
||||||
saver = session.query(db.Telegram).filter_by(telegram_id=update.message.from_user.id).one_or_none()
|
saver = session.query(db.Telegram).filter_by(telegram_id=update.message.from_user.id).one_or_none()
|
||||||
author = find_author(session, text)
|
author, actual_text = parse_diario(session, text)
|
||||||
except IndexError:
|
except IndexError:
|
||||||
if update.message.reply_to_message is None:
|
if update.message.reply_to_message is None:
|
||||||
reply(bot, update, strings.DIARIO.ERRORS.INVALID_SYNTAX)
|
reply(bot, update, strings.DIARIO.ERRORS.INVALID_SYNTAX)
|
||||||
|
@ -262,7 +264,7 @@ def cmd_diario(bot: telegram.Bot, update: telegram.Update, session: db.Session):
|
||||||
diario = db.Diario(timestamp=datetime.datetime.now(),
|
diario = db.Diario(timestamp=datetime.datetime.now(),
|
||||||
saver=saver,
|
saver=saver,
|
||||||
author=author,
|
author=author,
|
||||||
text=text)
|
text=actual_text)
|
||||||
session.add(diario)
|
session.add(diario)
|
||||||
session.commit()
|
session.commit()
|
||||||
reply(bot, update, strings.DIARIO.SUCCESS, ignore_escaping=True, diario=diario.to_telegram())
|
reply(bot, update, strings.DIARIO.SUCCESS, ignore_escaping=True, diario=diario.to_telegram())
|
||||||
|
|
Loading…
Reference in a new issue