utils.py 2.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960
  1. from pony.orm import *
  2. from pyrogram.types import Message
  3. from os import listdir
  4. # ========= DB build =========
  5. db = Database()
  6. class User(db.Entity):
  7. uid = PrimaryKey(int, auto=True)
  8. status = Required(int) # status-user: "INSERT"/"NOT-INSERT"
  9. db.bind(provider='sqlite', filename='zipbot.sqlite', create_db=True)
  10. db.generate_mapping(create_tables=True)
  11. # ========= helping func =========
  12. def dir_work(uid: int) -> str:
  13. """ static-user folder """
  14. return f"static/{uid}/"
  15. def zip_work(uid: int) -> str:
  16. """ zip-archive file """
  17. return f'static/{uid}.zip'
  18. def list_dir(uid: int) -> list:
  19. """ items in static-user folder """
  20. return listdir(dir_work(uid))
  21. def up_progress(current, total, msg: Message):
  22. """ edit status-msg with progress of the uploading """
  23. msg.edit(f"**התקדמות ההעלאה: {current * 100 / total:.1f}%**")
  24. # ========= MSG class =========
  25. class Msg:
  26. def start(msg: Message) -> str:
  27. """ return start-message text """
  28. txt = f"[‏](https://github.com/M100achuz2/archive-bot.git)היי {msg.from_user.mention}!\n" \
  29. "באמצעות בוט זה תוכלו לדחוס קבצים לארכיון. שלחו /zip, ופעלו על פי ההוראות." \
  30. "\n\nרובוט זה נוצר על ידי [Yeuda-By](t.me/m100achuzBots) מצוות [רובוטריק](t.me/robottrick)." \
  31. "\nלקוד המקור [לחצו כאן](https://github.com/M100achuz2/archive-bot)."
  32. return txt
  33. zip = "שלחו את הקבצים שהנכם רוצים לדחוס, ובסיום שלחו /stopzip לאחר שכל הקבצים ירדו. \n`הבוט תומך בקבצים עד 20mb, " \
  34. "ועד 20 קבצים לארכיון אחד.` "
  35. too_big = "הקובץ גדול מידי ):"
  36. too_much = "ניתן לדחוס עד 20 קבצים בלבד."
  37. send_zip = "השתמשו בפקודת /zip בשביל לדחוס קבצים (:"
  38. zipping = "מתחיל בדחיסת {} קבצים..."
  39. uploading = "מעלה ארכיון..."
  40. unknow_error = "התרחשה שגיאה לא ידועה. \nשים לב לסדר הפעולות, ניתן להתחיל מחדש על ידי שליחת /start. \nבדוק אם " \
  41. "שלחת קבצים לדחיסה, ואם חיכית שכולם ירדו. \nבבקשה שלח זה למפתח:\n ```{}``` "
  42. downloading = "מוריד קובץ:"
  43. zero_files = "לא נשלחו קבצים."