hiddifypanel 3.0.0.dev64__cp38-cp38-manylinux2014_x86_64.whl → 3.0.0.dev65__cp38-cp38-manylinux2014_x86_64.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (70) hide show
  1. hiddifypanel/Events.py +27 -4
  2. hiddifypanel/VERSION +1 -1
  3. hiddifypanel/VERSION.py +1 -3
  4. hiddifypanel/__init__.py +7 -3
  5. hiddifypanel/__main__.py +13 -3
  6. hiddifypanel/base.py +88 -3
  7. hiddifypanel/base2.py +40 -3
  8. hiddifypanel/models/__init__.py +10 -3
  9. hiddifypanel/models/child.py +26 -4
  10. hiddifypanel/models/config.py +105 -4
  11. hiddifypanel/models/config_enum.py +207 -4
  12. hiddifypanel/models/domain.py +106 -4
  13. hiddifypanel/models/proxy.py +55 -3
  14. hiddifypanel/models/usage.py +58 -3
  15. hiddifypanel/models/user.py +171 -3
  16. hiddifypanel/panel/__init__.py +7 -4
  17. hiddifypanel/panel/admin/Actions.py +170 -3
  18. hiddifypanel/panel/admin/Backup.py +80 -4
  19. hiddifypanel/panel/admin/ChildAdmin.py +122 -3
  20. hiddifypanel/panel/admin/ConfigAdmin.py +54 -4
  21. hiddifypanel/panel/admin/Dashboard.py +70 -4
  22. hiddifypanel/panel/admin/DomainAdmin.py +195 -4
  23. hiddifypanel/panel/admin/ProxyAdmin.py +128 -3
  24. hiddifypanel/panel/admin/QuickSetup.py +127 -4
  25. hiddifypanel/panel/admin/SettingAdmin.py +224 -3
  26. hiddifypanel/panel/admin/Terminal.py +51 -4
  27. hiddifypanel/panel/admin/UserAdmin.py +277 -4
  28. hiddifypanel/panel/admin/__init__.py +82 -4
  29. hiddifypanel/panel/admin/adminlte.py +13 -4
  30. hiddifypanel/panel/admin/commercial_info.py +23 -3
  31. hiddifypanel/panel/admin/websocket.py +9 -3
  32. hiddifypanel/panel/admin_2.py +33 -3
  33. hiddifypanel/panel/asset.py +17 -3
  34. hiddifypanel/panel/cf_api.py +35 -4
  35. hiddifypanel/panel/clean_ip.py +125 -3
  36. hiddifypanel/panel/cli.py +172 -3
  37. hiddifypanel/panel/commercial/CommercialDashboard.py +59 -4
  38. hiddifypanel/panel/commercial/CommercialSettings.py +224 -3
  39. hiddifypanel/panel/commercial/ProxyDetailsAdmin.py +38 -4
  40. hiddifypanel/panel/commercial/__init__.py +50 -4
  41. hiddifypanel/panel/commercial/restapi/__init__.py +14 -3
  42. hiddifypanel/panel/commercial/restapi/tgbot.py +57 -3
  43. hiddifypanel/panel/commercial/telegrambot/DefaultResponse.py +11 -3
  44. hiddifypanel/panel/commercial/telegrambot/Usage.py +71 -3
  45. hiddifypanel/panel/commercial/telegrambot/__init__.py +6 -4
  46. hiddifypanel/panel/commercial/telegrambot/admin.py +120 -3
  47. hiddifypanel/panel/commercial/telegrambot/information.py +123 -3
  48. hiddifypanel/panel/common.py +98 -3
  49. hiddifypanel/panel/custom_widgets.py +71 -4
  50. hiddifypanel/panel/database.py +18 -3
  51. hiddifypanel/panel/hiddify.py +655 -4
  52. hiddifypanel/panel/hiddify_api.py +70 -3
  53. hiddifypanel/panel/init_db.py +393 -3
  54. hiddifypanel/panel/usage.py +85 -3
  55. hiddifypanel/panel/user/__init__.py +25 -4
  56. hiddifypanel/panel/user/link_maker.py +416 -3
  57. hiddifypanel/panel/user/templates/home/multi.html +1 -1
  58. hiddifypanel/panel/user/user.py +233 -3
  59. hiddifypanel/static/css/custom.css +6 -0
  60. hiddifypanel/templates/500.html +1 -1
  61. hiddifypanel/xray_api.py +109 -3
  62. {hiddifypanel-3.0.0.dev64.dist-info → hiddifypanel-3.0.0.dev65.dist-info}/METADATA +1 -1
  63. {hiddifypanel-3.0.0.dev64.dist-info → hiddifypanel-3.0.0.dev65.dist-info}/RECORD +67 -69
  64. hiddifypanel-3.0.0.dev65.dist-info/top_level.txt +1 -0
  65. hiddifypanel-3.0.0.dev64.dist-info/top_level.txt +0 -2
  66. pyarmor_runtime_000000/__init__.py +0 -4
  67. pyarmor_runtime_000000/pyarmor_runtime.so +0 -0
  68. {hiddifypanel-3.0.0.dev64.dist-info → hiddifypanel-3.0.0.dev65.dist-info}/LICENSE +0 -0
  69. {hiddifypanel-3.0.0.dev64.dist-info → hiddifypanel-3.0.0.dev65.dist-info}/WHEEL +0 -0
  70. {hiddifypanel-3.0.0.dev64.dist-info → hiddifypanel-3.0.0.dev65.dist-info}/entry_points.txt +0 -0
@@ -1,5 +1,72 @@
1
- # 2023-04-08T16:23:20.052038
2
- from pyarmor_runtime_000000 import __pyarmor__
3
- __pyarmor__(__name__, __file__, b'PY000000\x00\x03\x08\x00U\r\r\n\x80\x00\x01\x00\x08\x00\x00\x00\x04\x00\x00\x00@\x00\x00\x00m\x14\x00\x00\x12\t\x04\x00UQ\xa51"\xf2cN\xb2\x8f\xa9\xe9%\xd7\x9a\x97\x00\x00\x00\x00\x00\x00\x00\x00\xae6\x93\x81\x1e\xa1\xdb\xcf\xed\xbd\n/\'T\xe4\x9b\xd5*P\xcf\xcb\x1e\x9e=\x1c\x87\xca\xf4\x8fr{E.\x01-\x8c\xf7\xceY\x1a\rw\xa1F\xe5x\x91\x12\xfe\xb8\xd1s\xa9\xbfq\x80D\x90\xa8\xde\xb8r[9\x15\x89\xe6y\xd3\xc8\x1e\xb8\xb757\x9b\n\\\xc6y\xed\xa2C\xba8R\r\xb0V\xdar\xdd\xc3\xb5\xb2\xdbrIo\xb3MN2\xfd\xf1\x85\\r\x0f\xec\x82\xc9\xc6B\xb5\xc5\x9df\xa7\xdb\xd8\x1d<\xb9j\x93\xf5<\xcd`\xb5\xa4\xc0\xfc.1\xf1\x80\x911h\x17\xb8\x904\xe6\x94\xf3\x96\xf3v\x0e\xc8l:\xebk\xc2(yz\x19\tp\x17i\x11\xc2\xe9\x08\xd6\x08\xd0\x18C* \xa7(\xa3\xceg\x1d\xe1\x1b\xd0\x0c>\xa4\xd9\xa1%\x9a\x1f\x1e\xfc\\,)7\xa9(\xd6Q%kW\xd9\xbc\x87\xd0\xf2\xc8\x8e\xc1\xff\xa1\xfbdlr\x86>\xadQ\x88\xf7\xd8.\xda\xa0\x18\x03b\x92\xa9[/nj\xa9\n\xa8\xdd+\xb9\xba\x89\x1e\xd1e\xdc@&\xaf\xe1\xe5\xfa\xc4\x99\xc2\\\'\xcf\xdf\xc6\x1c7\xf1\xa4=\x05ENw\x82\xd3\re\xb96\xf7\xac0ht\x85\xe3\xef/\x1c\x84F\xe4R\xd0hs\x96\xe3\'[\n\xad\xcb\xa7\tx\x1a\xef}\xe1\x99\x7f\xf9N\xa5Y\x9c\xc5Y\x0b\xdbm \xf0N\x03\xbb\xc7\xf7\xff|\x89\xa5\xbb\x1d\xc4\t\x884dk\r%\xe0p\ra%#\x92%\x9e\xf6S\xee)\x88qeB\x90q\x8b\x84\xb9C~\xbd\xfa\xf2/=%\xf2\xb1z\xd0\xa0\x136\x97\xf5\x1c\x12\x020\xf4\xb1R\xd4y\xc9\xd0\xd1\x03\xe6\x16\xde_i\x96\x8a\\\xdc2\xe2\x90/r!\xbaz\x0bS\x03\x8f# \x99b{\xe9\'\x1c\xb5K\x9c\xff\xb2\xcf\x8d\xa1\xb9\xe6\xfa\xc6~g\xd8\\NW\x0c\xc6{Lp\xf7\xb6\xf8M\x87X2#\x9cz\xba~\x8e\xad\x92\xbe2\x9cL\x0c\x99\x91V\x84\x1f\xcb\xab\x17~\x8ao\xa2\xfb\xfa\xaa\x88\xfd[\xaa\xb7\xf4\xb6\xe6\xc4\n\x9a\x87\xf3~\xc5\xe0+\x9f\xadj\x00\x89\xaf\xd4\xcf\xcc\xbd\xd9c\xeb\xfb\xec\x98?\x02\x199\xa5\xfbofH\x03\xa9\xbd}q\x84\xecW+\x0b\xdd\xde\xd99\x1c+}\x9e8\xf5\xe1\x12\xf1\xab_f\xf7\x95\xbf\x1d,\x12\x9c:\x95J\xee#\x9f.\xd6\xf0b\xd5\xab\xe6\xcf\x8e\xb0\xe6\xccx1\xec\xcd\xdb\xef5\x95\x12\xda\x0cD]\xb2\xe8\xee\x7f\xcf\xe8\x7f\x9c\x04+\xd5l\x99\xb6\xffnWn\xf3\x1a0s"\ng_\x80\xf2\r\xf2\x8f\xc6\x11\x06t\x90\xfa\xb3S\xbe\x04{\nH\xdb\x9a\xb1\x91s\xfe\xa9/\x9dG\x0f\x03\xfd\xb56\xaf\xd9\\\n@F\x82\xee\xdbsE.m\x84\xb0\xce\x81\x11\x1c\x97\x97\xb9Hhk\x99\xcf\xaa\xc4o\xf3\xee\\?#\x83\xb9\x1a\xfb\xf8N\\\x9f\xdfi\x06%\xf4=@\xdeNs\xdb\x94\xa7|\xe2\x11\xbd\xb5\n\xb6\x8b%\x9e\'8pM\x99\xc6\x84tQu\x89\x1c\xc4\xc9\xf3\x9a\xff\x1b\xcd\x19l\xee\xe1\xb7\xaa<\xf7\xbeg\x16\t\xc2\x08}\xd9\xe1\xa1\x99s\x11. \x04\x97\xc0\x95\x83\xe9S~\x9d\xe1E\xc8\x9d\x19\x1d\x10!\x8c\x06\x8a\xd0@M\xc9q|\x04\xe9\x0e0\xc8\x1a\x1f\xc7\xb2\xf2%^,\t\x9c\xac\xcd\xb1\x95\xecR\x8d\xbe\xd2\x81\xe0\n\x9d\x85\x10B>\x0b\x9do\x16#\xd0\xdc([\xbaOe*\xca[\xbc\xd5&\xd2\'\x8c1\x99\xd9\xb4\xcb\x08T\xd2j\xc5\x82d\xd3\xe1\x12\x8e\x1b\x05=\xa2\x10\x04\xbd\x9f\x83\x12\xaa%x2\xf5q\x82\xa6P\x8c"\xc3m\x1b`\x96B8&0p\x9cL\x92\xe5\xbb\xefs\xf6\xf9\x96\x9f\x9a\x96\x11\xedP\xb6\xeb\xd5\xc2@^e\xae(\xd6[\x0e\xbc\xd3\x04\xac\xf3\xe3\x91\xa6\xef\xc7\x96,]\x80\xc9\xb8@\xda\xb4\xdf\xb3\xc1\xb0%\x9f\xf2\xc9\xbd1\x8e\x86@\x80\x9f|\x85\x1e\x8e\x82\x12\xc9\x13\x1d@d1g\x905\xd8\xc3\x85\xdf:jT\x04H\x13p\xeciO.\xbdSx\x8fH\xe5ZV\xe6\xd1\xce\xff~j\xb0\x88lE\xda\xdc\xbb\x14V\xf1\x16\xcc\xcb\x16E\xab\xb3\xd3\x8d\x83a\x8a\x85s\xcd!N\xa09\x85E;\x18\x1d\xd4D\xee\x07M\x8b\xe2\x99pj|\xca1Y/<\x1e1EF[\xc7\xfevT\x0ew>\x16d\xc9d\xfd\xb6\x01\xcaN\xb6;\x8am\rnJ\xba+O\x8fI"\xdfAP\xe5\xe3d\xa8\xbc\xb2\xb1\x97<e\xd4\x87\xd6o!\xe9i\xdd\xdc\x95X\x90\xf2e:\x026=Vr\xfd\x91\xbd\x93H\xc3\xb1\xe1\x152\xeaO0\xe4\x91\xe4\x91xV\xdb\xe8\x10,\xb9\x91\xa7\x8d\xbc\xcc\xc0z/}\x8d\xe7\x0e\xe7\xe6WLD^j{\x00n=\xfb*?E\xa0b/\xdf\xdd\\$%\xeb\xe8\x80\x00M\x9aBV\xf7;\x93[\xd3\xd1\x10\x01\xbb\xba\x94\xbf_bf2\x9d\x87\x0b\xb3\xe7\x9fH\xca\x8d\xb6l\xd7\x88x\x04\xfc\t|\x9d\xee\xb9\x89\xe8\xe4\xb2\xd3\x90\xcb\x0c\xb96\xf2%\x91x"\x7fS\x91\xb6\xfd&\x87\xf8G\xdb.V\xd1n\x07\xb5\x08\xa8\xd1TJ\xa6ad,\xe88,"\xe7a\x9b\xfa\x0c\x1b\xa4\xba3\xc7\xf3\x1b6p\xa7~"A\xael9P\x977\xdeYi1\x03\xbf\x8fC\x05\xd9\xf21\xd5\xc8)\xb9\x01Zf\x14\xbf\x81\x94\x0c\xfd\x81\xcej\xae\xd6\xe6\xa2 \xaed\xbe\x96r\xf6\x03\xd1*\xa1\'\xa5\x08\x92_\x9a\xc8\x91k\xcb\xca\xc9\xc5\xb2\x8e\xb7,\xf6\xae\x89G\x15\x84\xca\x06L.\xf1\xd3bev\xc0\x12\xaa\x0c\x0c\xf4\xe9u`\x12!\x84F!\x8e\xd7z\xb5\xcc\xe1N1(>P\xad5\x9b\x11\x98\x1e\x9e\xc6-\xb9\x1f{u\nr)\x1f\x06N\xa1\x9ee\x14C\xe8\xa8G\x01\xa8]D\x06u\xce\xfc\'\x90l\\\x93\xbd\xbcT!:{\xba\xad\x0b\x1f\xc8\x96\x15\xc1\xd6\xb7\xb8OpOb\xee\xbdh\xda\x00\x17I\xca\xb8i\xb1\xbf\xbd\xf4\x18\xf87\xb0n\xca}3\x83\x92\x85P\xbb/\xc4\x04\xb3o:\x95\x9d\xe1\x97\xcb\xbb3D\x99K\'q\xfcuW\xa6S\xc4\xea\xee\xd2\xdf=\xf6G`\x85\x0b,\xca\xaf\xf5\xcb\x86\x9cp\xe2\xf2\x19\x87$@\x04\xeb\xea\x8d\xc0\x8a\x07?<\xe2\xbf2\x94E\xd3x\xccO@\x06?{\xe6.\x08\x83\x89d\xd1\x83N\x17\xd8\xb9]>J\xcd\xd1$r\x80\x04t\xb5D\xb5\xc4;\x1b9S\xb0>\xc9\x85ls\xa9\x82>\xb8wj\x08\\E\x98\xf4W\x1fm\x16\xe4&U\xa7\xcb\x92\xcd\x0e\x13,\x94\x008qWs\xdd\x10\x84\xfcf\xf1\xfd\xe3.\xaa\xd2\xf3\xfe\x11:r\'\xbe\xbb\x81]v\xd7\xe2\x8e\xb0\xb9\xc7p>#p\xa0\xc9\xad\xa6$j\xa4@i\xdf_o/r2\xb4C/\x8c9y\x1b\xb5vv4\xdb\xec\xb3\x9a\xf8R\xc9%H,e\xf3\xef\xbd+0\xdd\xa7^\x8f\xab\x87\xa0i\x99\xe5\xd0\xaaa!\x1d\x0c\xb1\x9a\xe3WhO\xd9\xd98\xa8\x86M\xf3\x9d Z1\xd6\xa19#5M\xab\xf9\xec\x872\xcd\x12U\xcf\xf6\x86\xb4q\xd9\xb7\xe9\xf7|\x13\xc4z\xdb\xfb\xee<\xb3I\xfe\x18\x16\xa7\x94\xc0\x0e\xddD\x0f\xe2#\n3l\xe8?Q\xe3\xb3\xda\x8d=\x1b\xd4\xc6\x8d"\xf1<\\AU\xf6TP\xee\xa6{\xa3\xdf*(\xbcV\xd7EE=\xc1\xe0\xd7\t\xd9\xf5y)&vA\xb9_\x92\xbd\xfe;\xd7\x9b\xed^\xe1\x99-\xca<PO(\x9d\xb2U]\xc4\x8a@<\xd6\xb3\xfc\n/#\x181\xcb\xbar\xf8W\x06\xb6\xba\xf2t\xdft\xe0\xcc\xba\x00\xb5\xf6u\xc9j`y\xf9&\x86Z\xe1\xdd\x9c\xb89\xe7\xc3\xf0\xfcr\xf3\xda\x1b%\x91\xedp\xa12\x8a&\xdc\xdd\xf7\xf1\xce\xa8\xdbK\xb2\xa0\xee\x1c\x08\x97\x9e\x98\rI\x0c\x15<4H\xe2\x93f\xaa\xd1E"\x8a\xb3g}\xe5,\\\xebt\xcfR\xdb\xadikht\xc7\xb0\xe5\xf9\x81-\xdb\xf3\xcaGP\xbej\xbbN\xdc/\xc4\x90x\xef\x042V\x8ct\xc4R\x085\xb6\xdcX\x03hS*\xef\x83b\xec\x9a$u\x7fb\x11XP\x86fD\x83\xca\xa8\xa3\xb7q\xeeP\x90\xd4\x0c\x04O2]SQ\xd6T\xaa\'\xf9X\x8d\xab\xcc\x99\xe9\xd7\xba9\x13p^X\xd0\\K\xe4\xe0p\t\x13pm\x9e\xf2+~Q\x0f\xaav\xd6:\xaf\xd8~\xfc\xfd\xe5\xd4\xdd_e\xa4\xc7\x9a\xffA\xc7H\xcb*oZ\xd8\xfb\xe7\xa5\x99.\xc2(\x17I\xc9\x82\xd4\xe7\x00N\xa8\x03\x17\x14\xa5\x1b\xe2\x08\xb3\xc4(\x9e~@B\xb0x\\1\x04\xdc\x19"\x85\xb6\xd0A\x81<\xec!\x83<\x10c\xeeV\xf7}\xc6\x12{!\x86\xbe\xec\xbb\x89\xdb\x10]\xdd\x1b\xf5a\x1f_\x9c\xf6p\xd1\xe4\xa8\x06\t\xb0\x82\x1ft\xe9:S\x92\x18\xe5\xa4\xc2$\xf0\n\x15\xdb\xbe\x8c\xca\xf7s\xaa\x8c4\xc5\x015\xd4\xe4|\xdf\xa2zJa\xe8\x8e\x14k\x1e\x00\x18\xfc\xbd\xc5\xa9\x85\xf0\xf0#7\x0c\\\xf2+\x96\xeex\x91=\xd0\x19\xefo\xbf\xb9\xa9\xa0G\x1a\xbe4P\xa9$\xfb\xf1\xfe\x9f\x90]W\xc5.G\x1e\x16\xbes\x9a,\x1c\xf8\xd3\x1e.\\\x10\xcc\x82Xq\x11\x82H\xb1I\x9d\x83\x7f\xfe\xd9\xcf\x01\x91x\xd9\xdfa\r:K\x15\xd6\x076\x9f\x95N\xf3\xcb%\x0b\xb3YA\xdcNMV\xb1\x83\xf7\x14\xb6g\xab\xb0\xcb\xaf?\x05\xa1[\x98\xcc\x18\x80\x83A\xb3N\xab\x8f\xd6\xdf\xe148"\x89\xeb\x91\xfa\xcf\xd4r?\xca\xb3\xe1\xed\x9d\xf6\x85\xecf\x82i6R\xb6\xffUm\xff7Rg&\xec2Mum\x12\x94\xc3\x85/n(\xfa\x0c\xb6W\x99\x94=\x956/e\x02\x8ab50\xa1\x85\x89\x03R\xe8\x93\xa3#YNZg\x1c\xa2\xe5BF@\xbf\xf1\x96=\x03\x993\xa8T\xa5\x02\x0bg\xd6\xae3\xdfK\xccn\xdes\xdb\xcb(\xda\x98qP\xb3oV\xcf\xce\x07\x99\x13\xd7\x03\xbc\x1d\xc08\xd2\xb9U\xe8S\x80`\x1c\xd1\xea {\xad\xcd~\xe6\x05&\x13\xcf\xa2\x0eT\xadj\x10\xd7\x90_;\xa3sk\x03\xc0[HgF\x19(\xdb`^\x9b\x88\xe1W\xce-\xf2\x92\x13\x7f\x96e"P}\xd0qp\x93\x97g\x0e\xddJ0\xf3\xca\xb3\x84P&\\Frf\xe1m"\xe5O\xe5\x95\x9a\x8eu\x8b\x8b\xa8f\x14\xe0:$\r\x82\x1a\x11\x17N\xf3\x91\x99|1\x97GTq\x01\xbc\xfb\n\xaf\xea\x98!\x9c\x18\x00B\xa9=\xeb?\xe6\xe6\xdf\xf5\x8fy\xca\xcc\xc3\xc1tjN\xcan\xbc\xe5\xc0G\xe56\xe95N<\x8am\xf1k{+\xde~\x1d@\xfa\xaf\x9e\xf3\xbb\x91Fq}518\xa5F\xc0Y\x0c.\x13\xe3u\xe2\xd1x\x03s\\\xba\xac?\xce\xa4^\x8f/N3\xb7&\xae\x08\xc7\xbd\x1f\x18ID5\xae:\x0e"`\xac\x89s\xaeG\x8b\x15\xfd|c\x92l\xc0\x04\xb9\x17\xbc5\xf8\xd0\xeb \x90&8{|iP\x1eVX\x94\x91&s\n8\xd7\x867\xad\xa8\xc7\xc0\x14\xae3\'\xee2ez<\x8a\xf5\xdf/\xa19+e\x1bg;\xad\xb4Q\xd1\xff\xf0a\x97\xe5\xc1\x13M\xcetg\x9e\xdc9\xb0.YJQ\x80\xab\xc8\x86\x90\x18\xc6\xcc\xb9\x9a>\xb8x\\\xef\xfaH\x9b\xf6\x0e\x11\xbd\x9dT\xab\xbb\xdd\xb0&\x04SO\x12\x08\x1c\x8cu\xb3\xb79\xb4\xd8\xdb\xe6\xc0\x88)F\xb3Z\xf8\xf2\xffWzA-b\x98\x9e$e\x84\x99\x13-\xa1q\x7f\xea\x89\n\x96\x8d8\x10\xa9IZM\x06\x07\xf5\xddU\x1e=\x90(o\x04\xaa\x95\xe3I\xbe\xa5Q\x17\x8414\x07\xb5\x82(\x03\xddV\xceX0Q\xcbS\x19\xa1O\xe0\x11?W\xd8z\xdb\xcb!\xec1j4\xf9\x9a2\xea\xc9ce\x17`r\xec\xb7\x0e>r\xa3O\xfa\x0fI&[\x88\xbfAC?\x92\xa2\xacC\xf6\xf1\xac\xf1\xf7\xce\x02\xa0\xc9\xe9a2\\\x83\x04\x17\x15\xf3\x87\x86\'\xcc\xf8\x9d\xdf~\x11\xcd(\xc66O\xb8?-\xb8\x03\x1b\xd9\x9e\xa0V\xa7\x88\r\x0eV\t\xffT\xf7\\\xd5\x83\xe7\xfd\xbf\xc54\xa7m\xe7\xa7\x17l\xac\xe0$\xd4IC\xbc\xe0\xfd\x8f\xae\xc6]\x06\xea\xe3\x97\xe5N\xb3Q;\xe8\x15\xbb\x14\xa1Ij\x05\xfah\xe2\xce\xa2G\xcd\xcf?\x18;o\t0\xc6&\n:=\x85\xadXW\xeb\x07\xc8\'n\xea;\xbct&\x9dA\x89\x94\xa1\xe9\xabJ\xa5,\xff\x0f\x18w\'\x8c;2.\x06a\x83y:\xfd\\\xae\r\x89\x07\x0c\x80\xca>\xc5\x88\xb8\xfcbF\x1c\xc7?\xf8\x8bm\xd64\x9f\x0bJ\xab8N\xe6\xaeM\xbf\x9b)z\xfd)nB;B\xfb\x0c\xccx{\xe9\xb7\xcc\x0b\xc1\xb4\xaa\x0e(\x10M\xa9\r\x91 \x1c \x80pq\x9b\xbaj\x9d\xec0\x9b_[^\xe3\xf1\xa6"\x93\xcc\xbc \xacxn\x0e\x00\xfa\x11\xea\x02Ip\xd0\xe5\xfeo>Jg\x89\xf7\x03\x8bA\xbe\xd1\x91D\x0cI\x81\xfd\x18L\xca\xa8\xa0\xc5p<2\xf8X\xa8\x99\x05\xf4E!mM\x8ae[\x94bH3\xb7\xe2\xf9\x00\xe0~\xdb(\xb3s\x807\xb7\xf0\xfc/2\x15\x0b\xa4\x8e\xf3)\xb3\xe4\xdaE\xd8\xc9Q\xd2\xb0\x1fZ\xee\x82\xdf\tH7\x84\xc6\xad\xdb=\xa0\x9e\x17\x91\x8f"2\xbb\x12\xdb\xa4 x\x9b3J\x0c\xf0d\xe2\xe1\xba\x97$\x16\x84\xff\x8fo\xfcL\x1c\xd1\x8c\x929\x0f\x9bB9\x94\x0e\x1a/Q6Q.\xcday\xc3\xea)\xe3\x0b71z\xec\xc9J\x0b6v\x16\xdd\xfbv\x81b8\x8a\xcf\xaf\xe6\x95zu\xb8\xe3\xaa\xa8e\xd9\xa9\x91i\xf1\xb41\x92\xee\xaaYP\xb6\xb6\xe1\xf9{e\xee\n\xa1R_\xc5e\x0f\xd6eB\x8dZ\r9\x84\xe6\x9e\x8d\xcb\x05\xb9u\x92\xf1j\x88\xae>\xd9\xf1\xb2r\x0cqj\xd1\xdf\xaa\xed\xd3\xc4$r&\xc2t\xbc\xcfV@\x04\x10\xa6\'\xb0\xf7\rY\xeb<<\xab\xc0G4\xf2)\xbf\x97z4\xfej\xa8\x0e\xeag\xe8t\xbd\xd8\xf6\x042BcV\xf7\x9fe\x9c\x93\xb8\xa4\xa3\x98\x9e\x14\xb6s\xe5T\xe6;=\x10\xe5\xc3\xd3\xe2\x8e\x88\xb4\\txzU\xb6y\x9b\x90\x99jM+\r\xf5\xdf\xfd\x10\xe4\xaf\xfc\x9e\x90\xd5\x8a5\x11\x9e\xa7.\xe2\x81!\t\xa7\xc5\xb7@\'\x1bN\xbeR\x19\xdf\x81\x96p\x83\xbb\xfe%cz\xbc\xe2U*\x0f\x02\xf4\xe1\xf2\xaeo\xd4.\xf6E\x1b\xf1\xdeF\xc2y\xd9\xc8\xc2\xac\x97\xdar\xae\x84\tq)V\xef\xbf$\xb9@X\xab~\x9cv\xae\x01\x9626\xfb\xd1\xcb6\x8510b\x9c@\xb9T0\xb20Um\xf87\x06\xa3\xd7\',\x0fh\xf4\x82\x93\xfd\xda\x9a\x9bvh\x8f\x08\xef\xd6\xa4\x86\xc6\xb2\xfe3\n\x8f2\xc1\x07\x84\x04\xc7\xd5r\xb33\x00\x15\xe3\xda\x89X\xac\xd0M0\x1e_\x90\x8c\x86\xe0|\xc8\xa4\xfa\x94\xe9-n\x85\x8cp\xc8\x9d,O\xb8\xc8\xd1)Rn\xd8\x05\t\xa7\xa7\xa2PN\x83\x9cn\xc2\x8d\x1cn\x1c\x13\x87C\xd5\xcd\xdb\x007s!\xdes\xa3\x88\xcc{N1\xd7\x8a\xe0\x9f\xbf:\xaa\xaa\x84\x8e\x06G\xf3\xe9C`\x9ec\xb7\xd9^\'\x0c4l\xd7\xa3;qXn\xe8D\xaa\\\xf1L\x0f\x13|\xb5\xc4\xcf&pG\xb2\xbc\xae\xbd@=WET}V\xa9\xc2:u\x1e\x9c\x14e\x9e\x1a\x18\x9d\x94\xbc\xe2\x11Ha4xT\xe7\xe8\x18c7\x7fv\x8fh\xa8\xa1\xa6\xc1\x89\x93$\xf2]\xb8N\xfb!\xa5\x96\xf6\x04\xabC\x9d\x9f\xa2Q\xa0\x12\x84@(v\xb0\xbe\\(\xa6m$\xf8\x18H\xd8\xbcR\xd0\xca<*\x0f\xae:Y\xaf\'\x0c_$\xed\x07\xc0\xd1\xe4\x14\xdb\x1b4QW4*\xd5\xd0\x9f\xf5\x060\x1ey!\xc24\xe0\xd2\xfb\xf5\xb9\xae8-\xef\xeb\x1b\xf5\x9d\xca\x16m\xd0D\xd5\xfd\x8d\x01\xa0\xda\xc6\xf2\xf8+\x82A\x9fL{\xbd\xe1\xaf~\xa7>q6\xe7\xb8\xd7\x1d\x17\x14\xd3\x06\xd3\xa0n/\xa6\x8a\xa9C\xd14G\xaa\x80\xea\x16D#\xfc\x17l\xa6\xf0\xcdN\xcb\xb4|\xec\xacL\n`\x86\xc3\xc2\xc5^>KXM\x9e7\xeeu\xc0\'\xef\x7f}\xeaS*4 l\xa9\x12\x02;94\xadW\xb7\xb9"q\xf0\xec\x8f?\xbc\x16u\xd2\xb1\xe5\x0e5\x16"\x1f\xfd\xe3\x061\xaeX\x83[\xb25\x148\x0b\xd1\x9d\xe7\xfb\xcb*\xdd\x06OI]64\xcbk\xb9! \xa3"\x13\xc0\x1d\x8d\x9e\x03\x84\x11S@\tD\xba\xbf_\xdd\xe3\x00\xd9C\xb0\x04\xb0\xdc"F!\xea\xcb\x90FW~\x9a1xq\xc1\xe5\xf9\x01LKD&L.\xce~vx\xc6,\xec_\xe7\xfa\x8e\xc7\xdfYJ\'\xccDO\xb2\xb3\xeb\x1bM\x14\xbcf\x0f \xeb\xaf\xaca\x05\xf1\xd3\xa9\xe3i,p\xbb\xb6(`){C\xdb,h4\xcc\xd9y\x0e\xd3?\xc0\x98y?\xeb\x14\xbe\xcfJP_\xd7\xd8\xe2\x1c\xa8E\xa2b\xdc\x9f\x87\xd4\xb0\x9c\xc5\x85\xd5c\x8dv\xbc\xe9u1\xde<$\xf0 <{v\x06\x89\xd8\x01\x8a\xf5\xd5\xdc\xda\xcaVT\xa7\xeb\x1d\x7f\x16\x19\xca\xa8\x172D\x82\xe3\xd5U\x18\x19r\x981v\xdcO\xce\xae\xf8{\xdfv\xa6\xee\x16\xf8\x9aY\xb4\xd8\xf5\xeb\xdc\x96\x0b\xbf\x1a\xca\xdf+Y\x08\x80>\xc1\x14_Y)\xafK\xf8\x8eR\x82\xaf\xe0\xd4\xc0\x96\x9f\xae\x07%\xf6\x9a\xd9\xca\xd5\xb9\xe9\x14\xbd\xc8?\xd4(\x98M7Y\xc3v\r\xb5\xd3\xe2\xb9\x1ftp]Y\xb1\xda\xd7U"\xfc\xf7>\xee\xea5F\xce\xcd\xa1\x1f?\xc9\x19\x11\xbc>w\x05\xdb$\xdbF|\x8aq;\xfd\x8fW\x94\xd8\r\xfc\xcb\x07\x8e\xc7\x92u\xbf\xbc\x9d\xf0\xb8\xc4\x8c\x88\xcd_\'\xf6\xa7\xd3\x9e/\xe6\xee\x98\xb0$#\x04\x8b\x7f)\xeeq}\xc1\xa4c\x0e\xe5J_\x90\xd2\x1f\xfa\xf7p\x99\x88\x98\x1b\x056+{\x06\xbc\xc0l\x1f\n\xc6\x0f\x80eM\xc6\xb4\xcb.\x9ab\r\x18\xc1)\x8c\x84\xba*\x0cI\x81\xc9\xd3\xcebm\xaf3\xcb\xf5\xcbt\x83\x1f9\xa1\x1b\xa96\xe9f\x9bB\xa1\xca\\\xfc\x1c\xce\x05\xabl\xe9\x93\x19Hk\x82\x8a\x0c\x05\xd4\xf7\xd6\xdeM\xcf\xde\x95\x96;\xb2\xfaf\xdaf\xdd\x98\xa8\x9a\xe3zm\xe8\x8f\x84\x1f\xe6\x8d\xc8\x15m"\xea\t\x8b\xe3\x80=\x9c\xc0b\xbe_\xa9B>\xbd\xb1\xeeI\x06\r\x8f>k\xcb\xbe9\x17\xc2\x11XS\x8b\x01\xfe\xe7\x07\x83b\x93\xd6\xc7#\xeb&q\x01\xeb\x04\x87\xe2=\xd6\n\x07\xf3\xe4Q\xfd!\x99j\xd7\x92\x97.\xc7`p\xb8\x93\x8d\x89\x83|\xde\x12\\\x1c^\xb0\x08\x94\x10\xbbF\xde\xe3"\xf0\x9e\x836\x11\xd0\xa7!\x04\x9f\xcfD\x91\x18Ut\xb3w\x11\xbb\x8f\xb1\x0e:\x1b\xd7\x1dn\xa7o\n\x7f\xfc\xc5\x99I\x1d)E\xac\xce\x8c\x01j\x15\x92KM( Dzd\xc5e\xf0Or\x1c<\xa3A%\xd4\x8d\x0e\x00\x13(c\xdc8\xe6\xd2\xc8]\xf88\xe5b:\xcf\x8a\xce\x9bX\x1d\xa2\xd0U\xbf\xb8\x94\xeaJ\x10F2"b\xac\xfa<\xda\x8d\\`8F\x95\xcd\x95\x19\xab\xb7\xc9\x8bi\x03\xc5\x85>l\x81R\x8d\xae\x12\xf1\x91\xef\xf4*\xc9O3\xa6\xcbl\x8d6\xeb}\xb1\xea\x81"\xf9b7h\xb9a\x1d\xe3Z\xf1\xc1\x0e\xf9x<\xf4Q\x06C\xcc\x83\x95\xe9\xda\xbf\x14\xdc8j\xf4\xa6;f]*)b\x04zj\x19\x9b\xa0~\x91\x8f\x1eGIO\xc9AC\xe1@X\xa9\xd6T#\xcd\xc1\xd0\x98\x01\xa5\x05O\xbe\x99\x97\x13H\xc0G>\x8b3\xc3=0h\x1e\xda{N\xbf\x88\xe9\xaa\r\xb2n\xb9Y2\xa2H\xd5\xc0\xc3w\xc9/iN\x81\xb0K\x92\xe7k\r:\xec\xa0\xbd\x07\x8e\x14\x8b\xc0K\xc0\xd4\xe1\x0c\xf56\x05\x96&\xef\xe9\xafO\x0ec\t\xbb\xf6h\xf4\xd8\xef4S1\xcea\x99\x0f\xa0:\x9aY\x9b\xbe\x90\x87\x7f\x8cH\x15\x92{{%\xa7\x94\x9a\xcc\x11\xa8\\E\x1f\xeb\x0fn\x8dbCf\xbc\xf9\x83\x91f\x80\xa1\x06\xbf\x1eqK1P\xe9Gjb9\xa9\xc4\xf2\xb2\xb9)se\xc2\xf2\xddO\xfa=\xd1\xe8\x9b?\x8a\xab\xe0,f\'(\xf4[\xd2\t}\x12\xcbm\x996)\xef\xc5\n\xeePWC\x95q\x13\xdc\xa7\xebhn\xa9\xc3\xbe\x8d\xbe\x1b\x8f\x91\xac\x86_\x8dK\xb0\xdd\xe9\x9f,\xa4Mx\xa0\xac\x8c\xf7\xb6\xd7\x9f"\xb6\x99\xcd\xf1\x92F\xb8O\xb3t\xbd?\xfc\x9cu\x80\xeak\xd2\xed\xfch)gU\x8d\xdf\x15j\x04j!\r\x81\xb2\xb3\xaf\x8c\xa7\xb7 \n\x059\xeaLa\xc49\x8d^N\x910\xe2\x02\xd5Ls\xea\xab\xd8\x13Pr\x11H\xcd1 \x15\x0e\xffB\xc2\xfb\x8a\x14-\xfd\x9d\x1d\xd2\x11A\xce\x86\x869\x0f\x89\x8bSW\xb7;\xa1\xfaSS\xec\x9fl\xa6\xc7\x12I$LjF\x8d\x12>\x03\x0en\x0c\x1f\xe5p\xfb\xd2\'\xfc\x03n\x0e\x05\xcc\x16\xcc|"\xef\x82\xcb\xb3\xeb\xcf\xc5:\xaa\xda\x19\x94A\xf2\xdf\'\xef\x86D`\xd5\xcb\x93]\x97\x18\xe1\x1f\'.M\xd9{\x905l\x9e\xa2\xd9\x9d\xc1\'\xe4\xa9]t\x18ICE\xc2\xe5o\xb9\xf1\xc5_\xa5\xeb\xad\x7f\x91=,\xbb\x9a\xd5Lb\x96\x16\xbelXe\x198}\xdaP\x8f\xb7R\xde\x97;Z\xb99u\xa1\x8f\xa1&)\x15\x91\x89\xf0mQ\x1cG\xf7xg')
4
- #واقعا برای 5 دلار میخوای کرک میکنی؟ حاجی ارزش وقت خودت بیشتره
1
+ from flask_admin.contrib import sqla
2
+ from hiddifypanel.panel.database import db
3
+ import datetime
4
+ from hiddifypanel.models import *
5
+ from flask import Markup,g
6
+ from wtforms.validators import Regexp,ValidationError
7
+ import re,uuid
8
+ from hiddifypanel import xray_api
9
+
10
+ # from gettext import gettext as _
11
+ from flask_babelex import gettext as __
12
+ from flask_babelex import lazy_gettext as _
13
+ from hiddifypanel.panel import hiddify
14
+ from hiddifypanel.panel.hiddify import flash
15
+ from wtforms.fields import StringField,IntegerField
16
+ from flask_bootstrap import SwitchField
17
+ from wtforms import TextAreaField
18
+ from wtforms.widgets import TextArea
19
+ from flask_admin.contrib.sqla import ModelView
20
+
21
+
22
+ class DaysLeftField(IntegerField):
23
+ def process_data(self, value):
24
+ if value is not None:
25
+ days_left = (value - datetime.date.today()).days
26
+ self.data = days_left
27
+ else:
28
+ self.data = None
29
+
30
+ def process_formdata(self, valuelist):
31
+ if valuelist and valuelist[0]:
32
+ days_left = valuelist[0]
33
+ new_date_value = datetime.date.today() + datetime.timedelta(days=int(days_left))
34
+ self.data = new_date_value
35
+ else:
36
+ self.data = None
37
+
38
+ class LastResetField(IntegerField):
39
+ def process_data(self, value):
40
+ if value is not None:
41
+ days_left = (datetime.date.today()-value).days
42
+ self.data = days_left
43
+ else:
44
+ self.data = None
45
+
46
+ def process_formdata(self, valuelist):
47
+ if valuelist and valuelist[0]:
48
+ days_left = valuelist[0]
49
+ new_date_value = datetime.date.today() - datetime.timedelta(days=int(days_left))
50
+ self.data = new_date_value
51
+ else:
52
+ self.data = None
53
+
54
+
55
+ class CKTextAreaWidget(TextArea):
56
+ def __call__(self, field, **kwargs):
57
+ if kwargs.get('class'):
58
+ kwargs['class'] += ' ckeditor'
59
+ else:
60
+ kwargs.setdefault('class', 'ckeditor')
61
+ return super(CKTextAreaWidget, self).__call__(field, **kwargs)
62
+
63
+ class CKTextAreaField(TextAreaField):
64
+ widget = CKTextAreaWidget()
65
+
66
+ class MessageAdmin(ModelView):
67
+ extra_js = ['//cdn.ckeditor.com/4.6.0/standard/ckeditor.js']
68
+
69
+ form_overrides = {
70
+ 'body': CKTextAreaField
71
+ }#واقعا برای 5 دلار میخوای کرک میکنی؟ حاجی ارزش وقت خودت بیشتره
5
72
  #Email hiddify@gmail.com for free permium version. Do not crack this cheap product
@@ -1,5 +1,20 @@
1
- # 2023-04-08T16:23:20.039707
2
- from pyarmor_runtime_000000 import __pyarmor__
3
- __pyarmor__(__name__, __file__, b'PY000000\x00\x03\x08\x00U\r\r\n\x80\x00\x01\x00\x08\x00\x00\x00\x04\x00\x00\x00@\x00\x00\x00;\x03\x00\x00\x12\t\x04\x00-\x9e3\xb3\x81d\xac\xe2\x9a\xfb.O\xbc\xd3\xb3D\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1b\xf0\xb1\x13\xaf\xd5\xf2\xc1\xa2|\xc7m]\xb4\x9e\xa6\x1dXG\xb1\xfd\x10\x037J\xa2LZ\x89\xea\xee\x97~\xa6X\xc1\xd6\xd4\xc2\x92\x9a\x83\x7f\x95\x1e\xdeQWY\xce\xd6\xed\x10\xcd\xac\x0b\x13xF\x08m\x93\xe2T\x0e\x18k\x93\x11\xa3\xccW>\x9aV\x0c\x03\n\xe6\xf7yN\x89\xf2\rd\xaa\xf8\xbf\x9b\xa6\x97\x04\x95i\xe8\xa8Al\xc8\x80\n%\xdc$\x85\xbfcDH\x1e1\xfa\xb6\\\xdb\x03\xda\xa6d\x8a\x05\x01\xcbp\xafL\x82+\x8e\xcbC;\xfe\xfb\xf3\xa5\xe18\x12\x8e\xf6<c8\x8f\xd9)\xa4nq\x0c\x9d\xa4\xabzp\xbax\x1b*rB\xd2I\xe4\xebc,pa\x10\x17\x14\xb0i9\xd4ZJ\x00n\x10\x1d}\x1f\xb3\xbfC\x86+o\x89\x89\x11\x11\x86\xd3\xdc\xf5\xe7\xa7\xef\x18\x82\x94\xa4\xaaIe\x8c\x12\xd02\x16\xfaM4w\x15H~2\x9f\xecQ)\xf1\xd4\xe5\xc5\xd1lL\xaf\xfb\x17d\xcc\xa7\xf1f\xea\x18\xf9\x0c\'\xbc\xb7\xb0SF5\xa5\xf6\xe1t\x19\x15\x08m\xf1\x13\x85\xe2J\t9\xcb\xa3\xf8\xb0+\x89F.\xde\x7f\xdc^\xcdK\x1bpi\x0e\x18\xee\x0f-=\xb7\x967\xf8m\xc3Y"kU\xc9\xfc\xdc\xcaA\xb6\x93o\xa7\xb2\x96\xabZj\x8f@\nU\x801\x1d\xac\xc1\x19\xae\xc3\x04\xb15\xf5\x898\xe2&K\x14\xdd_^2\x8c-4q]\x80\xbf9p\xf9\x0b\xef\x91\x8aD\xeb\x08\x91\x01\x87\xd8C\'\x99]\xbd\xbbaz\x1aCMq\xe1\xc6\x86Z\x0e\xfc\x93\x19e\x89\x1daOn\xb1\xa5\xd7G@j\xed\xa1B\x11im\xde\xc7\x82\x85Gg#8\x1f\xe5\xc5J\xcb_q\xb2;\x0e\x8ab1\xf13=\xf8\xa6\xa7\xa2\xcbccv\xd9-\xb5\xf8KTq\xa6,\x0e\xab\xcc\xbb\xdf\xfe\x95\xde\xa87\x8d\xf9-\x9d\xe0\xcf\xfb\xe17t\xd5\x8eq\xd0\x05\xb9\xa0\xa22\x94tzv\x8a\xf67\xda1)\x96a\xacD\x7f2q\xa3\xbd\xf1s\xe4\xb2\xb0\x12\x00\xa7$\xa2P\xd4\x14\xe8\xe6\xa3\xca\xb8\xdf\xa0\x92\xf3\xc1\xbe*\xd3\xb3-\xd7\xde\xdd\xd8\xa8\xd6\xcb\xc7\xe6\xadd\x80\xe6\x9bG\xfe\xc3y\xe2\x0b\xbb\xb4\x14O\x02h\xa2\xf3\n\xf8\xd9\xab\xeb0\xc1\xee\xe5\xb6K\x18\xceV?\x14\xd7!\x02\t<\x0b\xa2\xa1\x97d~\xd1\x9dy\xcb\xff\xacI\xb7\x86\xc4u\x89\xb7\x11\xf5z\x17B\xfbE\xc4TF\xb3\xb3^Mb\xabf\x87\x19}\x9fd\xd0\xd5P\xe9,\xcb\xf4V\x8f\xd35U<Y\x1ff\xc0\xd4\xca~a\x9a\xd9\xa3\xaeZ\x0e\x9b\x13M\x9e\xb6?\x8c\xe5-\xd8N\xe4\xcfGc\x1c7\xd2\xdfZp\xbb\x1e\x1bm\x02\xad0g\xd8+T\x88\x17\x95\xb9Mm0\xccy\x8a\x04\x81\xc0\x80\xa3Ov\xf6o<\xc3\xb7\x189u5!\x9f\\j\x89\n\x98\xef}\x80f\x1b\x1e_\x96sUg\x8b^}\x9f\xe6\xd9\xde\xdd\xdd\xf3!\xe1\xbb\xc4\xd0\x18*\xb1\xed\x92\x03{\xe8\x86\x18\x8b$\xbd\xb2\x1c\xfd\xffd\xad\xbf\x1f\'n|:\xf3\x11\x00R\x9a\x00\x18\xd5\x0b\xd7\xf0\x8d?|\xdb\x84\x92q\x1c\x15\x00P\x8b*\x07\x957(\xa1\x9a\xf9s\xc15\xc4l\x86\x088,\xde`Q\xa9\xfa\x17\twh@Y6\x17\x08\x8c@B\x03\x10\x82\xd85\xc7x\x83\x8e\xea\xd9\xb1\xbd\x98\x94O*H\xf9')
1
+ from flask_sqlalchemy import SQLAlchemy
2
+ from sqlalchemy_utils import UUIDType
3
+
4
+
5
+ db = SQLAlchemy()
6
+ db.UUID=UUIDType
7
+
8
+ def init_app(app):
9
+ app.config['SQLALCHEMY_TRACK_MODIFICATIONS'] = True
10
+ db.init_app(app)
11
+
12
+ # db.create_all(app)
13
+ # app.jinja_env.globals['get_locale'] = get_locale
14
+
15
+
16
+
17
+
18
+
4
19
  #واقعا برای 5 دلار میخوای کرک میکنی؟ حاجی ارزش وقت خودت بیشتره
5
20
  #Email hiddify@gmail.com for free permium version. Do not crack this cheap product