diff --git a/Pipfile b/Pipfile new file mode 100644 index 0000000..1e52e30 --- /dev/null +++ b/Pipfile @@ -0,0 +1,39 @@ +[[source]] +url = "https://pypi.org/simple" +verify_ssl = true +name = "pypi" + +[packages] +django = "*" +pillow = "*" +pyrogram = "*" +python-telegram-bot = "*" +django-yamlfield = "*" +django-timezone-field = "*" +django-redis-cache = "*" +django-jsoneditor = "*" +django-jet = "*" +django-extensions = "*" +django-environ = "*" +django-djconfig = "*" +django-crispy-forms = "*" +django-bootstrap4 = "*" +daphne = "*" +markovify = "*" +python-anticaptcha = "*" +vk-api = "*" +sentry-sdk = "*" +python-twitter = "*" +pytelegrambotapi = "*" +celery = "*" +celery-once = "*" +feedparser = "*" +json-rpc = "*" +humanize = "*" +jsonfield2 = "*" +tgcrypto = "*" + +[dev-packages] + +[requires] +python_version = "3.9" diff --git a/Pipfile.lock b/Pipfile.lock new file mode 100644 index 0000000..1f757ed --- /dev/null +++ b/Pipfile.lock @@ -0,0 +1,875 @@ +{ + "_meta": { + "hash": { + "sha256": "c59814083dbed426c1e8f37d69afb81110e504ffa539277b088fe7668c85ca5f" + }, + "pipfile-spec": 6, + "requires": { + "python_version": "3.9" + }, + "sources": [ + { + "name": "pypi", + "url": "https://pypi.org/simple", + "verify_ssl": true + } + ] + }, + "default": { + "amqp": { + "hashes": [ + "sha256:1e759a7f202d910939de6eca45c23a107f6b71111f41d1282c648e9ac3d21901", + "sha256:affdd263d8b8eb3c98170b78bf83867cdb6a14901d586e00ddb65bfe2f0c4e60" + ], + "markers": "python_version >= '3.6'", + "version": "==5.0.5" + }, + "apscheduler": { + "hashes": [ + "sha256:3bb5229eed6fbbdafc13ce962712ae66e175aa214c69bed35a06bffcf0c5e244", + "sha256:e8b1ecdb4c7cb2818913f766d5898183c7cb8936680710a4d3a966e02262e526" + ], + "version": "==3.6.3" + }, + "asgiref": { + "hashes": [ + "sha256:5ee950735509d04eb673bd7f7120f8fa1c9e2df495394992c73234d526907e17", + "sha256:7162a3cb30ab0609f1a4c95938fd73e8604f63bdba516a7f7d64b83ff09478f0" + ], + "markers": "python_version >= '3.5'", + "version": "==3.3.1" + }, + "async-lru": { + "hashes": [ + "sha256:baa898027619f5cc31b7966f96f00e4fc0df43ba206a8940a5d1af5336a477cb" + ], + "version": "==1.0.2" + }, + "attrs": { + "hashes": [ + "sha256:31b2eced602aa8423c2aea9c76a724617ed67cf9513173fd3a4f03e3a929c7e6", + "sha256:832aa3cde19744e49938b91fea06d69ecb9e649c93ba974535d08ad92164f700" + ], + "markers": "python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3'", + "version": "==20.3.0" + }, + "autobahn": { + "hashes": [ + "sha256:9195df8af03b0ff29ccd4b7f5abbde957ee90273465942205f9a1bad6c3f07ac", + "sha256:e126c1f583e872fb59e79d36977cfa1f2d0a8a79f90ae31f406faae7664b8e03" + ], + "markers": "python_version >= '3.7'", + "version": "==21.3.1" + }, + "automat": { + "hashes": [ + "sha256:7979803c74610e11ef0c0d68a2942b152df52da55336e0c9d58daf1831cbdf33", + "sha256:b6feb6455337df834f6c9962d6ccf771515b7d939bca142b29c20c2376bc6111" + ], + "version": "==20.2.0" + }, + "beautifulsoup4": { + "hashes": [ + "sha256:4c98143716ef1cb40bf7f39a8e3eec8f8b009509e74904ba3a7b315431577e35", + "sha256:84729e322ad1d5b4d25f805bfa05b902dd96450f43842c4e99067d5e1369eb25", + "sha256:fff47e031e34ec82bf17e00da8f592fe7de69aeea38be00523c04623c04fb666" + ], + "version": "==4.9.3" + }, + "billiard": { + "hashes": [ + "sha256:bff575450859a6e0fbc2f9877d9b715b0bbc07c3565bb7ed2280526a0cdf5ede", + "sha256:d91725ce6425f33a97dfa72fb6bfef0e47d4652acd98a032bd1a7fbf06d5fa6a" + ], + "version": "==3.6.3.0" + }, + "celery": { + "hashes": [ + "sha256:5e8d364e058554e83bbb116e8377d90c79be254785f357cb2cec026e79febe13", + "sha256:f4efebe6f8629b0da2b8e529424de376494f5b7a743c321c8a2ddc2b1414921c" + ], + "index": "pypi", + "version": "==5.0.5" + }, + "celery-once": { + "hashes": [ + "sha256:9098730d6a84a91ccd84868c4730a81487fd0ffb7220cb1836d2b928542159d0" + ], + "index": "pypi", + "version": "==3.0.1" + }, + "certifi": { + "hashes": [ + "sha256:1a4995114262bffbc2413b159f2a1a480c969de6e6eb13ee966d470af86af59c", + "sha256:719a74fb9e33b9bd44cc7f3a8d94bc35e4049deebe19ba7d8e108280cfd59830" + ], + "version": "==2020.12.5" + }, + "cffi": { + "hashes": [ + "sha256:005a36f41773e148deac64b08f233873a4d0c18b053d37da83f6af4d9087b813", + "sha256:0857f0ae312d855239a55c81ef453ee8fd24136eaba8e87a2eceba644c0d4c06", + "sha256:1071534bbbf8cbb31b498d5d9db0f274f2f7a865adca4ae429e147ba40f73dea", + "sha256:158d0d15119b4b7ff6b926536763dc0714313aa59e320ddf787502c70c4d4bee", + "sha256:1f436816fc868b098b0d63b8920de7d208c90a67212546d02f84fe78a9c26396", + "sha256:2894f2df484ff56d717bead0a5c2abb6b9d2bf26d6960c4604d5c48bbc30ee73", + "sha256:29314480e958fd8aab22e4a58b355b629c59bf5f2ac2492b61e3dc06d8c7a315", + "sha256:34eff4b97f3d982fb93e2831e6750127d1355a923ebaeeb565407b3d2f8d41a1", + "sha256:35f27e6eb43380fa080dccf676dece30bef72e4a67617ffda586641cd4508d49", + "sha256:3d3dd4c9e559eb172ecf00a2a7517e97d1e96de2a5e610bd9b68cea3925b4892", + "sha256:43e0b9d9e2c9e5d152946b9c5fe062c151614b262fda2e7b201204de0b99e482", + "sha256:48e1c69bbacfc3d932221851b39d49e81567a4d4aac3b21258d9c24578280058", + "sha256:51182f8927c5af975fece87b1b369f722c570fe169f9880764b1ee3bca8347b5", + "sha256:58e3f59d583d413809d60779492342801d6e82fefb89c86a38e040c16883be53", + "sha256:5de7970188bb46b7bf9858eb6890aad302577a5f6f75091fd7cdd3ef13ef3045", + "sha256:65fa59693c62cf06e45ddbb822165394a288edce9e276647f0046e1ec26920f3", + "sha256:69e395c24fc60aad6bb4fa7e583698ea6cc684648e1ffb7fe85e3c1ca131a7d5", + "sha256:6c97d7350133666fbb5cf4abdc1178c812cb205dc6f41d174a7b0f18fb93337e", + "sha256:6e4714cc64f474e4d6e37cfff31a814b509a35cb17de4fb1999907575684479c", + "sha256:72d8d3ef52c208ee1c7b2e341f7d71c6fd3157138abf1a95166e6165dd5d4369", + "sha256:8ae6299f6c68de06f136f1f9e69458eae58f1dacf10af5c17353eae03aa0d827", + "sha256:8b198cec6c72df5289c05b05b8b0969819783f9418e0409865dac47288d2a053", + "sha256:99cd03ae7988a93dd00bcd9d0b75e1f6c426063d6f03d2f90b89e29b25b82dfa", + "sha256:9cf8022fb8d07a97c178b02327b284521c7708d7c71a9c9c355c178ac4bbd3d4", + "sha256:9de2e279153a443c656f2defd67769e6d1e4163952b3c622dcea5b08a6405322", + "sha256:9e93e79c2551ff263400e1e4be085a1210e12073a31c2011dbbda14bda0c6132", + "sha256:9ff227395193126d82e60319a673a037d5de84633f11279e336f9c0f189ecc62", + "sha256:a465da611f6fa124963b91bf432d960a555563efe4ed1cc403ba5077b15370aa", + "sha256:ad17025d226ee5beec591b52800c11680fca3df50b8b29fe51d882576e039ee0", + "sha256:afb29c1ba2e5a3736f1c301d9d0abe3ec8b86957d04ddfa9d7a6a42b9367e396", + "sha256:b85eb46a81787c50650f2392b9b4ef23e1f126313b9e0e9013b35c15e4288e2e", + "sha256:bb89f306e5da99f4d922728ddcd6f7fcebb3241fc40edebcb7284d7514741991", + "sha256:cbde590d4faaa07c72bf979734738f328d239913ba3e043b1e98fe9a39f8b2b6", + "sha256:cd2868886d547469123fadc46eac7ea5253ea7fcb139f12e1dfc2bbd406427d1", + "sha256:d42b11d692e11b6634f7613ad8df5d6d5f8875f5d48939520d351007b3c13406", + "sha256:f2d45f97ab6bb54753eab54fffe75aaf3de4ff2341c9daee1987ee1837636f1d", + "sha256:fd78e5fee591709f32ef6edb9a015b4aa1a5022598e36227500c8f4e02328d9c" + ], + "version": "==1.14.5" + }, + "chardet": { + "hashes": [ + "sha256:0d6f53a15db4120f2b08c94f11e7d93d2c911ee118b6b30a04ec3ee8310179fa", + "sha256:f864054d66fd9118f2e67044ac8981a54775ec5b67aed0441892edb553d21da5" + ], + "markers": "python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3, 3.4'", + "version": "==4.0.0" + }, + "click": { + "hashes": [ + "sha256:d2b5255c7c6349bc1bd1e59e08cd12acbbd63ce649f2588755783aa94dfb6b1a", + "sha256:dacca89f4bfadd5de3d7489b7c8a566eee0d3676333fbb50030263894c38c0dc" + ], + "markers": "python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3, 3.4'", + "version": "==7.1.2" + }, + "click-didyoumean": { + "hashes": [ + "sha256:112229485c9704ff51362fe34b2d4f0b12fc71cc20f6d2b3afabed4b8bfa6aeb" + ], + "version": "==0.0.3" + }, + "click-plugins": { + "hashes": [ + "sha256:46ab999744a9d831159c3411bb0c79346d94a444df9a3a3742e9ed63645f264b", + "sha256:5d262006d3222f5057fd81e1623d4443e41dcda5dc815c06b442aa3c02889fc8" + ], + "version": "==1.1.1" + }, + "click-repl": { + "hashes": [ + "sha256:9c4c3d022789cae912aad8a3f5e1d7c2cdd016ee1225b5212ad3e8691563cda5", + "sha256:b9f29d52abc4d6059f8e276132a111ab8d94980afe6a5432b9d996544afa95d5" + ], + "version": "==0.1.6" + }, + "constantly": { + "hashes": [ + "sha256:586372eb92059873e29eba4f9dec8381541b4d3834660707faf8ba59146dfc35", + "sha256:dd2fa9d6b1a51a83f0d7dd76293d734046aa176e384bf6e33b7e44880eb37c5d" + ], + "version": "==15.1.0" + }, + "cryptography": { + "hashes": [ + "sha256:066bc53f052dfeda2f2d7c195cf16fb3e5ff13e1b6b7415b468514b40b381a5b", + "sha256:0923ba600d00718d63a3976f23cab19aef10c1765038945628cd9be047ad0336", + "sha256:2d32223e5b0ee02943f32b19245b61a62db83a882f0e76cc564e1cec60d48f87", + "sha256:4169a27b818de4a1860720108b55a2801f32b6ae79e7f99c00d79f2a2822eeb7", + "sha256:57ad77d32917bc55299b16d3b996ffa42a1c73c6cfa829b14043c561288d2799", + "sha256:5ecf2bcb34d17415e89b546dbb44e73080f747e504273e4d4987630493cded1b", + "sha256:600cf9bfe75e96d965509a4c0b2b183f74a4fa6f5331dcb40fb7b77b7c2484df", + "sha256:66b57a9ca4b3221d51b237094b0303843b914b7d5afd4349970bb26518e350b0", + "sha256:93cfe5b7ff006de13e1e89830810ecbd014791b042cbe5eec253be11ac2b28f3", + "sha256:9e98b452132963678e3ac6c73f7010fe53adf72209a32854d55690acac3f6724", + "sha256:df186fcbf86dc1ce56305becb8434e4b6b7504bc724b71ad7a3239e0c9d14ef2", + "sha256:fec7fb46b10da10d9e1d078d1ff8ed9e05ae14f431fdbd11145edd0550b9a964" + ], + "markers": "python_version >= '3.6'", + "version": "==3.4.6" + }, + "daphne": { + "hashes": [ + "sha256:0052c9887600c57054a5867d4b0240159fa009faa3bcf6a1627271d9cdcb005a", + "sha256:c22b692707f514de9013651ecb687f2abe4f35cf6fe292ece634e9f1737bc7e3" + ], + "index": "pypi", + "version": "==3.0.1" + }, + "django": { + "hashes": [ + "sha256:32ce792ee9b6a0cbbec340123e229ac9f765dff8c2a4ae9247a14b2ba3a365a7", + "sha256:baf099db36ad31f970775d0be5587cc58a6256a6771a44eb795b554d45f211b8" + ], + "index": "pypi", + "version": "==3.1.7" + }, + "django-bootstrap4": { + "hashes": [ + "sha256:2c199020ac38866cdf8d1c5561ce7468116b9685b455a29843c0225ef8568879", + "sha256:b68f073b647b20ec7894a252a0ca4e06b7b8dafdbad995cb0cdc783d0bb4629d" + ], + "index": "pypi", + "version": "==2.3.1" + }, + "django-crispy-forms": { + "hashes": [ + "sha256:2ea206f35a9554597b89315ea52737d32d2fd9f5304e79a469a08887aa0824b0", + "sha256:5c600dea66e2f435f774fe2c4cacfb5b5eb9914dd6da0728edd174b95f6956fd" + ], + "index": "pypi", + "version": "==1.11.1" + }, + "django-djconfig": { + "hashes": [ + "sha256:6f10ce83b33b70a9382a6e74e3c009efe55b9e714d5630b7b35db2c4628c64cf" + ], + "index": "pypi", + "version": "==0.10.0" + }, + "django-environ": { + "hashes": [ + "sha256:6c9d87660142608f63ec7d5ce5564c49b603ea8ff25da595fd6098f6dc82afde", + "sha256:c57b3c11ec1f319d9474e3e5a79134f40174b17c7cc024bbb2fad84646b120c4" + ], + "index": "pypi", + "version": "==0.4.5" + }, + "django-extensions": { + "hashes": [ + "sha256:674ad4c3b1587a884881824f40212d51829e662e52f85b012cd83d83fe1271d9", + "sha256:9507f8761ee760748938fd8af766d0608fb2738cf368adfa1b2451f61c15ae35" + ], + "index": "pypi", + "version": "==3.1.1" + }, + "django-jet": { + "hashes": [ + "sha256:f521dc0873023afa198d2b57687e0593ee62022bd50fa59506dfce69b101cd9e" + ], + "index": "pypi", + "version": "==1.0.8" + }, + "django-jsoneditor": { + "hashes": [ + "sha256:574f33a60271f464cad5739b6f4718aca81a779188297faa5adab41754cac9ba", + "sha256:e74760740ef5ecb0d295bb07c21635d2bebea7b9bab4352fa403720cc275a905" + ], + "index": "pypi", + "version": "==0.1.6" + }, + "django-redis-cache": { + "hashes": [ + "sha256:9a2eebef421d996a82098a19d17ff6b321265cd73178fa398913019764e8394a" + ], + "index": "pypi", + "version": "==3.0.0" + }, + "django-timezone-field": { + "hashes": [ + "sha256:068dc2c9b11c2230e126f511a515609d46f8cc49278b293e7536be07997fe892", + "sha256:b5b587aabed8db66eb3453691522164915c1aa1b326d8ddeadc8832a8580faeb" + ], + "index": "pypi", + "version": "==4.1.1" + }, + "django-yamlfield": { + "hashes": [ + "sha256:347bfcb779468e51baedf1f2e6357b7558fcc5d082a63ca5767c3be6ad0856e5", + "sha256:4614ff0da68cb9bac735785e99db8bc14aabaf0446bd5edd7d046206d0ef7b55" + ], + "index": "pypi", + "version": "==1.0.3" + }, + "feedparser": { + "hashes": [ + "sha256:1b00a105425f492f3954fd346e5b524ca9cef3a4bbf95b8809470e9857aa1074", + "sha256:f596c4b34fb3e2dc7e6ac3a8191603841e8d5d267210064e94d4238737452ddd" + ], + "index": "pypi", + "version": "==6.0.2" + }, + "future": { + "hashes": [ + "sha256:b1bead90b70cf6ec3f0710ae53a525360fa360d306a86583adc6bf83a4db537d" + ], + "markers": "python_version >= '2.6' and python_version not in '3.0, 3.1, 3.2, 3.3'", + "version": "==0.18.2" + }, + "humanize": { + "hashes": [ + "sha256:ab69004895689951b79f2ae4fdd6b8127ff0c180aff107856d5d98119a33f026", + "sha256:d47d80cd47c1511ed3e49ca5f10c82ed940ea020b45b49ab106ed77fa8bb9d22" + ], + "index": "pypi", + "version": "==3.2.0" + }, + "hyperlink": { + "hashes": [ + "sha256:427af957daa58bc909471c6c40f74c5450fa123dd093fc53efd2e91d2705a56b", + "sha256:e6b14c37ecb73e89c77d78cdb4c2cc8f3fb59a885c5b3f819ff4ed80f25af1b4" + ], + "version": "==21.0.0" + }, + "idna": { + "hashes": [ + "sha256:b307872f855b18632ce0c21c5e45be78c0ea7ae4c15c828c20788b26921eb3f6", + "sha256:b97d804b1e9b523befed77c48dacec60e6dcb0b5391d57af6a65a312a90648c0" + ], + "version": "==2.10" + }, + "incremental": { + "hashes": [ + "sha256:02f5de5aff48f6b9f665d99d48bfc7ec03b6e3943210de7cfc88856d755d6f57", + "sha256:92014aebc6a20b78a8084cdd5645eeaa7f74b8933f70fa3ada2cfbd1e3b54321" + ], + "version": "==21.3.0" + }, + "json-rpc": { + "hashes": [ + "sha256:84b45058e5ba95f49c7b6afcf7e03ab86bee89bf2c01f3ad8dd41fe114fc1f84", + "sha256:def0dbcf5b7084fc31d677f2f5990d988d06497f2f47f13024274cfb2d5d7589" + ], + "index": "pypi", + "version": "==1.13.0" + }, + "jsonfield2": { + "hashes": [ + "sha256:bab284d3fc721067d5f3107a0adc87ee772e9b09cac5eca042fad6311c4842bd", + "sha256:cbce2d7c52563550cd2048fcf3a57631019d3547f5ed142f42141d1d2dc53283" + ], + "index": "pypi", + "version": "==4.0.0.post0" + }, + "kombu": { + "hashes": [ + "sha256:6dc509178ac4269b0e66ab4881f70a2035c33d3a622e20585f965986a5182006", + "sha256:f4965fba0a4718d47d470beeb5d6446e3357a62402b16c510b6a2f251e05ac3c" + ], + "markers": "python_version >= '3.6'", + "version": "==5.0.2" + }, + "markovify": { + "hashes": [ + "sha256:6bed379c6143741d6f7344f8d88526b0387ede23cf798f1e5ab99f525d6dba4d" + ], + "index": "pypi", + "version": "==0.9.0" + }, + "oauthlib": { + "hashes": [ + "sha256:bee41cc35fcca6e988463cacc3bcb8a96224f470ca547e697b604cc697b2f889", + "sha256:df884cd6cbe20e32633f1db1072e9356f53638e4361bef4e8b03c9127c9328ea" + ], + "markers": "python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3'", + "version": "==3.1.0" + }, + "packaging": { + "hashes": [ + "sha256:5b327ac1320dc863dca72f4514ecc086f31186744b84a230374cc1fd776feae5", + "sha256:67714da7f7bc052e064859c05c595155bd1ee9f69f76557e21f051443c20947a" + ], + "markers": "python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3'", + "version": "==20.9" + }, + "pillow": { + "hashes": [ + "sha256:15306d71a1e96d7e271fd2a0737038b5a92ca2978d2e38b6ced7966583e3d5af", + "sha256:1940fc4d361f9cc7e558d6f56ff38d7351b53052fd7911f4b60cd7bc091ea3b1", + "sha256:1f93f2fe211f1ef75e6f589327f4d4f8545d5c8e826231b042b483d8383e8a7c", + "sha256:30d33a1a6400132e6f521640dd3f64578ac9bfb79a619416d7e8802b4ce1dd55", + "sha256:328240f7dddf77783e72d5ed79899a6b48bc6681f8d1f6001f55933cb4905060", + "sha256:46c2bcf8e1e75d154e78417b3e3c64e96def738c2a25435e74909e127a8cba5e", + "sha256:5762ebb4436f46b566fc6351d67a9b5386b5e5de4e58fdaa18a1c83e0e20f1a8", + "sha256:5a2d957eb4aba9d48170b8fe6538ec1fbc2119ffe6373782c03d8acad3323f2e", + "sha256:5cf03b9534aca63b192856aa601c68d0764810857786ea5da652581f3a44c2b0", + "sha256:5daba2b40782c1c5157a788ec4454067c6616f5a0c1b70e26ac326a880c2d328", + "sha256:63cd413ac52ee3f67057223d363f4f82ce966e64906aea046daf46695e3c8238", + "sha256:6efac40344d8f668b6c4533ae02a48d52fd852ef0654cc6f19f6ac146399c733", + "sha256:71b01ee69e7df527439d7752a2ce8fb89e19a32df484a308eca3e81f673d3a03", + "sha256:71f31ee4df3d5e0b366dd362007740106d3210fb6a56ec4b581a5324ba254f06", + "sha256:72027ebf682abc9bafd93b43edc44279f641e8996fb2945104471419113cfc71", + "sha256:74cd9aa648ed6dd25e572453eb09b08817a1e3d9f8d1bd4d8403d99e42ea790b", + "sha256:81b3716cc9744ffdf76b39afb6247eae754186838cedad0b0ac63b2571253fe6", + "sha256:8565355a29655b28fdc2c666fd9a3890fe5edc6639d128814fafecfae2d70910", + "sha256:87f42c976f91ca2fc21a3293e25bd3cd895918597db1b95b93cbd949f7d019ce", + "sha256:89e4c757a91b8c55d97c91fa09c69b3677c227b942fa749e9a66eef602f59c28", + "sha256:8c4e32218c764bc27fe49b7328195579581aa419920edcc321c4cb877c65258d", + "sha256:903293320efe2466c1ab3509a33d6b866dc850cfd0c5d9cc92632014cec185fb", + "sha256:90882c6f084ef68b71bba190209a734bf90abb82ab5e8f64444c71d5974008c6", + "sha256:98afcac3205d31ab6a10c5006b0cf040d0026a68ec051edd3517b776c1d78b09", + "sha256:a01da2c266d9868c4f91a9c6faf47a251f23b9a862dce81d2ff583135206f5be", + "sha256:aeab4cd016e11e7aa5cfc49dcff8e51561fa64818a0be86efa82c7038e9369d0", + "sha256:b07c660e014852d98a00a91adfbe25033898a9d90a8f39beb2437d22a203fc44", + "sha256:bead24c0ae3f1f6afcb915a057943ccf65fc755d11a1410a909c1fefb6c06ad1", + "sha256:d1d6bca39bb6dd94fba23cdb3eeaea5e30c7717c5343004d900e2a63b132c341", + "sha256:e2cd8ac157c1e5ae88b6dd790648ee5d2777e76f1e5c7d184eaddb2938594f34", + "sha256:e5739ae63636a52b706a0facec77b2b58e485637e1638202556156e424a02dc2", + "sha256:f36c3ff63d6fc509ce599a2f5b0d0732189eed653420e7294c039d342c6e204a", + "sha256:f91b50ad88048d795c0ad004abbe1390aa1882073b1dca10bfd55d0b8cf18ec5" + ], + "index": "pypi", + "version": "==8.1.2" + }, + "prompt-toolkit": { + "hashes": [ + "sha256:4cea7d09e46723885cb8bc54678175453e5071e9449821dce6f017b1d1fbfc1a", + "sha256:9397a7162cf45449147ad6042fa37983a081b8a73363a5253dd4072666333137" + ], + "markers": "python_full_version >= '3.6.1'", + "version": "==3.0.17" + }, + "pyaes": { + "hashes": [ + "sha256:02c1b1405c38d3c370b085fb952dd8bea3fadcee6411ad99f312cc129c536d8f" + ], + "version": "==1.6.1" + }, + "pyasn1": { + "hashes": [ + "sha256:014c0e9976956a08139dc0712ae195324a75e142284d5f87f1a87ee1b068a359", + "sha256:03840c999ba71680a131cfaee6fab142e1ed9bbd9c693e285cc6aca0d555e576", + "sha256:0458773cfe65b153891ac249bcf1b5f8f320b7c2ce462151f8fa74de8934becf", + "sha256:08c3c53b75eaa48d71cf8c710312316392ed40899cb34710d092e96745a358b7", + "sha256:39c7e2ec30515947ff4e87fb6f456dfc6e84857d34be479c9d4a4ba4bf46aa5d", + "sha256:5c9414dcfede6e441f7e8f81b43b34e834731003427e5b09e4e00e3172a10f00", + "sha256:6e7545f1a61025a4e58bb336952c5061697da694db1cae97b116e9c46abcf7c8", + "sha256:78fa6da68ed2727915c4767bb386ab32cdba863caa7dbe473eaae45f9959da86", + "sha256:7ab8a544af125fb704feadb008c99a88805126fb525280b2270bb25cc1d78a12", + "sha256:99fcc3c8d804d1bc6d9a099921e39d827026409a58f2a720dcdb89374ea0c776", + "sha256:aef77c9fb94a3ac588e87841208bdec464471d9871bd5050a287cc9a475cd0ba", + "sha256:e89bf84b5437b532b0803ba5c9a5e054d21fec423a89952a74f87fa2c9b7bce2", + "sha256:fec3e9d8e36808a28efb59b489e4528c10ad0f480e57dcc32b4de5c9d8c9fdf3" + ], + "version": "==0.4.8" + }, + "pyasn1-modules": { + "hashes": [ + "sha256:0845a5582f6a02bb3e1bde9ecfc4bfcae6ec3210dd270522fee602365430c3f8", + "sha256:0fe1b68d1e486a1ed5473f1302bd991c1611d319bba158e98b106ff86e1d7199", + "sha256:15b7c67fabc7fc240d87fb9aabf999cf82311a6d6fb2c70d00d3d0604878c811", + "sha256:426edb7a5e8879f1ec54a1864f16b882c2837bfd06eee62f2c982315ee2473ed", + "sha256:65cebbaffc913f4fe9e4808735c95ea22d7a7775646ab690518c056784bc21b4", + "sha256:905f84c712230b2c592c19470d3ca8d552de726050d1d1716282a1f6146be65e", + "sha256:a50b808ffeb97cb3601dd25981f6b016cbb3d31fbf57a8b8a87428e6158d0c74", + "sha256:a99324196732f53093a84c4369c996713eb8c89d360a496b599fb1a9c47fc3eb", + "sha256:b80486a6c77252ea3a3e9b1e360bc9cf28eaac41263d173c032581ad2f20fe45", + "sha256:c29a5e5cc7a3f05926aff34e097e84f8589cd790ce0ed41b67aed6857b26aafd", + "sha256:cbac4bc38d117f2a49aeedec4407d23e8866ea4ac27ff2cf7fb3e5b570df19e0", + "sha256:f39edd8c4ecaa4556e989147ebf219227e2cd2e8a43c7e7fcb1f1c18c5fd6a3d", + "sha256:fe0644d9ab041506b62782e92b06b8c68cca799e1a9636ec398675459e031405" + ], + "version": "==0.2.8" + }, + "pycparser": { + "hashes": [ + "sha256:2d475327684562c3a96cc71adf7dc8c4f0565175cf86b6d7a404ff4c771f15f0", + "sha256:7582ad22678f0fcd81102833f60ef8d0e57288b6b5fb00323d101be910e35705" + ], + "markers": "python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3'", + "version": "==2.20" + }, + "pyopenssl": { + "hashes": [ + "sha256:4c231c759543ba02560fcd2480c48dcec4dae34c9da7d3747c508227e0624b51", + "sha256:818ae18e06922c066f777a33f1fca45786d85edfe71cd043de6379337a7f274b" + ], + "version": "==20.0.1" + }, + "pyparsing": { + "hashes": [ + "sha256:c203ec8783bf771a155b207279b9bccb8dea02d8f0c9e5f8ead507bc3246ecc1", + "sha256:ef9d7589ef3c200abe66653d3f1ab1033c3c419ae9b9bdb1240a85b024efc88b" + ], + "markers": "python_version >= '2.6' and python_version not in '3.0, 3.1, 3.2, 3.3'", + "version": "==2.4.7" + }, + "pyrogram": { + "hashes": [ + "sha256:50898f1f77bf0333adbade06d04c0ce35b7be5be2391582a817e9a4bbcc3bc33", + "sha256:7ef6cf917f9c0311c26c817717fa3a95929d6b688d936a6191be1b5f81982add" + ], + "index": "pypi", + "version": "==1.1.13" + }, + "pysocks": { + "hashes": [ + "sha256:08e69f092cc6dbe92a0fdd16eeb9b9ffbc13cadfe5ca4c7bd92ffb078b293299", + "sha256:2725bd0a9925919b9b51739eea5f9e2bae91e83288108a9ad338b2e3a4435ee5", + "sha256:3f8804571ebe159c380ac6de37643bb4685970655d3bba243530d6558b799aa0" + ], + "markers": "python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3'", + "version": "==1.7.1" + }, + "pytelegrambotapi": { + "hashes": [ + "sha256:859136cbd50e99922e1ea495d4ebe8235b2cb10fe419a5421f28855249db4278" + ], + "index": "pypi", + "version": "==3.7.6" + }, + "python-anticaptcha": { + "hashes": [ + "sha256:6d13df6702222b7adac29872f826079a72008177e95b4095a33d66b1050e8d86", + "sha256:f719fa76cdb0597ca6ff377540b999a1ecc77ce4e04c10f7e286d8dd8d189cc6" + ], + "index": "pypi", + "version": "==0.7.1" + }, + "python-telegram-bot": { + "hashes": [ + "sha256:770d6c19f75e530de7f6a8784ec06945da84bcd2344a72932b8c2a05a78cd421", + "sha256:8b5790cdbd5794da5ee06eb8d0a00a81e3f48b0e04b4d0e33874d45a2495c221" + ], + "index": "pypi", + "version": "==13.3" + }, + "python-twitter": { + "hashes": [ + "sha256:45855742f1095aa0c8c57b2983eee3b6b7f527462b50a2fa8437a8b398544d90", + "sha256:4a420a6cb6ee9d0c8da457c8a8573f709c2ff2e1a7542e2d38807ebbfe8ebd1d" + ], + "index": "pypi", + "version": "==3.5" + }, + "pytz": { + "hashes": [ + "sha256:83a4a90894bf38e243cf052c8b58f381bfe9a7a483f6a9cab140bc7f702ac4da", + "sha256:eb10ce3e7736052ed3623d49975ce333bcd712c7bb19a58b9e2089d4057d0798" + ], + "version": "==2021.1" + }, + "pyyaml": { + "hashes": [ + "sha256:08682f6b72c722394747bddaf0aa62277e02557c0fd1c42cb853016a38f8dedf", + "sha256:0f5f5786c0e09baddcd8b4b45f20a7b5d61a7e7e99846e3c799b05c7c53fa696", + "sha256:129def1b7c1bf22faffd67b8f3724645203b79d8f4cc81f674654d9902cb4393", + "sha256:294db365efa064d00b8d1ef65d8ea2c3426ac366c0c4368d930bf1c5fb497f77", + "sha256:3b2b1824fe7112845700f815ff6a489360226a5609b96ec2190a45e62a9fc922", + "sha256:3bd0e463264cf257d1ffd2e40223b197271046d09dadf73a0fe82b9c1fc385a5", + "sha256:4465124ef1b18d9ace298060f4eccc64b0850899ac4ac53294547536533800c8", + "sha256:49d4cdd9065b9b6e206d0595fee27a96b5dd22618e7520c33204a4a3239d5b10", + "sha256:4e0583d24c881e14342eaf4ec5fbc97f934b999a6828693a99157fde912540cc", + "sha256:5accb17103e43963b80e6f837831f38d314a0495500067cb25afab2e8d7a4018", + "sha256:607774cbba28732bfa802b54baa7484215f530991055bb562efbed5b2f20a45e", + "sha256:6c78645d400265a062508ae399b60b8c167bf003db364ecb26dcab2bda048253", + "sha256:72a01f726a9c7851ca9bfad6fd09ca4e090a023c00945ea05ba1638c09dc3347", + "sha256:74c1485f7707cf707a7aef42ef6322b8f97921bd89be2ab6317fd782c2d53183", + "sha256:895f61ef02e8fed38159bb70f7e100e00f471eae2bc838cd0f4ebb21e28f8541", + "sha256:8c1be557ee92a20f184922c7b6424e8ab6691788e6d86137c5d93c1a6ec1b8fb", + "sha256:bb4191dfc9306777bc594117aee052446b3fa88737cd13b7188d0e7aa8162185", + "sha256:bfb51918d4ff3d77c1c856a9699f8492c612cde32fd3bcd344af9be34999bfdc", + "sha256:c20cfa2d49991c8b4147af39859b167664f2ad4561704ee74c1de03318e898db", + "sha256:cb333c16912324fd5f769fff6bc5de372e9e7a202247b48870bc251ed40239aa", + "sha256:d2d9808ea7b4af864f35ea216be506ecec180628aced0704e34aca0b040ffe46", + "sha256:d483ad4e639292c90170eb6f7783ad19490e7a8defb3e46f97dfe4bacae89122", + "sha256:dd5de0646207f053eb0d6c74ae45ba98c3395a571a2891858e87df7c9b9bd51b", + "sha256:e1d4970ea66be07ae37a3c2e48b5ec63f7ba6804bdddfdbd3cfd954d25a82e63", + "sha256:e4fac90784481d221a8e4b1162afa7c47ed953be40d31ab4629ae917510051df", + "sha256:fa5ae20527d8e831e8230cbffd9f8fe952815b2b7dae6ffec25318803a7528fc", + "sha256:fd7f6999a8070df521b6384004ef42833b9bd62cfee11a09bda1079b4b704247", + "sha256:fdc842473cd33f45ff6bce46aea678a54e3d21f1b61a7750ce3c498eedfe25d6", + "sha256:fe69978f3f768926cfa37b867e3843918e012cf83f680806599ddce33c2c68b0" + ], + "markers": "python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3, 3.4, 3.5'", + "version": "==5.4.1" + }, + "redis": { + "hashes": [ + "sha256:0e7e0cfca8660dea8b7d5cd8c4f6c5e29e11f31158c0b0ae91a397f00e5a05a2", + "sha256:432b788c4530cfe16d8d943a09d40ca6c16149727e4afe8c2c9d5580c59d9f24" + ], + "markers": "python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3, 3.4'", + "version": "==3.5.3" + }, + "requests": { + "hashes": [ + "sha256:27973dd4a904a4f13b263a19c866c13b92a39ed1c964655f025f3f8d3d75b804", + "sha256:c210084e36a42ae6b9219e00e48287def368a26d03a048ddad7bfee44f75871e" + ], + "markers": "python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3, 3.4'", + "version": "==2.25.1" + }, + "requests-oauthlib": { + "hashes": [ + "sha256:7f71572defaecd16372f9006f33c2ec8c077c3cfa6f5911a9a90202beb513f3d", + "sha256:b4261601a71fd721a8bd6d7aa1cc1d6a8a93b4a9f5e96626f8e4d91e8beeaa6a", + "sha256:fa6c47b933f01060936d87ae9327fead68768b69c6c9ea2109c48be30f2d4dbc" + ], + "version": "==1.3.0" + }, + "sentry-sdk": { + "hashes": [ + "sha256:71de00c9711926816f750bc0f57ef2abbcb1bfbdf5378c601df7ec978f44857a", + "sha256:9221e985f425913204989d0e0e1cbb719e8b7fa10540f1bc509f660c06a34e66" + ], + "index": "pypi", + "version": "==1.0.0" + }, + "service-identity": { + "hashes": [ + "sha256:001c0707759cb3de7e49c078a7c0c9cd12594161d3bf06b9c254fdcb1a60dc36", + "sha256:0858a54aabc5b459d1aafa8a518ed2081a285087f349fe3e55197989232e2e2d" + ], + "version": "==18.1.0" + }, + "sgmllib3k": { + "hashes": [ + "sha256:7868fb1c8bfa764c1ac563d3cf369c381d1325d36124933a726f29fcdaa812e9" + ], + "version": "==1.0.0" + }, + "six": { + "hashes": [ + "sha256:30639c035cdb23534cd4aa2dd52c3bf48f06e5f4a941509c8bafd8ce11080259", + "sha256:8b74bedcbbbaca38ff6d7491d76f2b06b3592611af620f8426e82dddb04a5ced" + ], + "markers": "python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3'", + "version": "==1.15.0" + }, + "soupsieve": { + "hashes": [ + "sha256:407fa1e8eb3458d1b5614df51d9651a1180ea5fedf07feb46e45d7e25e6d6cdd", + "sha256:d3a5ea5b350423f47d07639f74475afedad48cf41c0ad7a82ca13a3928af34f6" + ], + "markers": "python_version >= '3.0'", + "version": "==2.2" + }, + "sqlparse": { + "hashes": [ + "sha256:017cde379adbd6a1f15a61873f43e8274179378e95ef3fede90b5aa64d304ed0", + "sha256:0f91fd2e829c44362cbcfab3e9ae12e22badaa8a29ad5ff599f9ec109f0454e8" + ], + "markers": "python_version >= '3.5'", + "version": "==0.4.1" + }, + "tgcrypto": { + "hashes": [ + "sha256:0c7fe235c703099d2ed27d6b4d51823625b84315af2f20aec07420260ef6543e", + "sha256:0efb29c804be7c2a66ea0855665d6196e0643f17f6e2c2c768aa0b5b784690de", + "sha256:1292a586bbf161d23beeacc0ddf5b26553c875d380d14d08b6c2283dabd05447", + "sha256:1d2223d3700590b63df905b825f7e01aee1da7a7309d0a7cd8496fe0cfce9a0c", + "sha256:2073aa6bbc809a56ae3d54e0f496cacaee6e5cb7c08682153c992eae72b4fbb8", + "sha256:230cb83d87ed9d289445801483de35035d60f14811a601c3b80dbf68fdb15a18", + "sha256:36a06b45e5776a463b1484b0810c9ce0c79d16ee954ace5fe98fc63c6fe6244d", + "sha256:37259c0a81d9170a1c9213d898e3ad2ec2973be361428e92be722f8af2029fb9", + "sha256:3cd17b033754c7dc08b346ac430e81a162a143bb42a7ffc5b8420872e5432f51", + "sha256:476a413105d96b6f87a5f58b13e2de3b5328cdc98c426758727dd1f8049bca65", + "sha256:4a6c9d045a68eda43e4064aba32dbf1c40472143ed88f20315dfad867f9cddfb", + "sha256:611a02defa3dc0c4ead98987992cb7d967c4741f477a27fececd31da367b2046", + "sha256:6efe4b3f050fe6c3bd820abf4a4c0854ea5fcb934bf76a9155e51347fc7d6796", + "sha256:7465a7df82cd8f79ea434f3e958d010fb5db80099f4034d441f2d6119afbdc9c", + "sha256:8160b2f0c4b9e5672567d53f5a0f4d5c1ada54021dc93225b38a802ffa42b4e0", + "sha256:8ee83902dd1e8bee467df6b58acb5e08e72a655afa1da655561d3e73edbef936", + "sha256:99154a515f68e75ddf76082c64eae522fe08620d9bcf8ebbf1d2f931bed07781", + "sha256:a0238007a6a68b7a99d118cfaa49a72b024a5bc3f7e9a60b07c1ba850a8d1d45", + "sha256:aa13cd10e8edf2520f3bff4f3327347e2883945c8b8c4a55f2b886f61cac13fa", + "sha256:ab0cc75142fab303bb7c8be5c60f0bff02378921d7cb3269db5d46bbc6c1792b", + "sha256:b5c7cb0e179c29b77f1b2b806edb7d01d9b4f205ca4f65c40375a3bb6a43bea4", + "sha256:bca8bcc1432d00955110173d0acd8410e2911ed9c8d05afae1a2ace4748314f1", + "sha256:bf210e4d7320d75737092bbb9f67b8d5fd2146fd2dc6786337961acbc9d94945", + "sha256:c7d1180c63b9cf774d474a0c6c27d7f3ee367d808589bbe218e4567ebc6bd4df", + "sha256:c89c25678704890ebe653ee528046844eb8470d205235a21c9db91cd4d12ed85", + "sha256:cad01599f511c502518f99869069d311a9e3df37324e077ca5742061395daa84", + "sha256:cb9c74812093554de4c99578758753a3034a62ad23672e4b80ce8381ec93eb6f", + "sha256:d118dd9f297406d385d2bdd6e92ecc3a8443ea1c35ce70b4e892ce95c3808fb5", + "sha256:d4e1b08733c09c0056ede44366ebe65cec7a5f19b78ff009aacbc9ac9158fcf6", + "sha256:df1d7bc592309eab34ea132f41acc2d7d6e0756ec5fbc0263922cb0e0326c6ef", + "sha256:e2c95040772d7db6c4ae55868de38c218c806edbef969f6de17983a2663b9699", + "sha256:e34917079682579a90dbcadb6b44bc3cbb73efb1657e7dc19839de2428922d30", + "sha256:feb71d6865cbf781ef36aeca075b6b86a19f3367958677ecd4912c69f25aa0af" + ], + "index": "pypi", + "version": "==1.2.2" + }, + "tornado": { + "hashes": [ + "sha256:0a00ff4561e2929a2c37ce706cb8233b7907e0cdc22eab98888aca5dd3775feb", + "sha256:0d321a39c36e5f2c4ff12b4ed58d41390460f798422c4504e09eb5678e09998c", + "sha256:1e8225a1070cd8eec59a996c43229fe8f95689cb16e552d130b9793cb570a288", + "sha256:20241b3cb4f425e971cb0a8e4ffc9b0a861530ae3c52f2b0434e6c1b57e9fd95", + "sha256:25ad220258349a12ae87ede08a7b04aca51237721f63b1808d39bdb4b2164558", + "sha256:33892118b165401f291070100d6d09359ca74addda679b60390b09f8ef325ffe", + "sha256:33c6e81d7bd55b468d2e793517c909b139960b6c790a60b7991b9b6b76fb9791", + "sha256:3447475585bae2e77ecb832fc0300c3695516a47d46cefa0528181a34c5b9d3d", + "sha256:34ca2dac9e4d7afb0bed4677512e36a52f09caa6fded70b4e3e1c89dbd92c326", + "sha256:3e63498f680547ed24d2c71e6497f24bca791aca2fe116dbc2bd0ac7f191691b", + "sha256:548430be2740e327b3fe0201abe471f314741efcb0067ec4f2d7dcfb4825f3e4", + "sha256:6196a5c39286cc37c024cd78834fb9345e464525d8991c21e908cc046d1cc02c", + "sha256:61b32d06ae8a036a6607805e6720ef00a3c98207038444ba7fd3d169cd998910", + "sha256:6286efab1ed6e74b7028327365cf7346b1d777d63ab30e21a0f4d5b275fc17d5", + "sha256:65d98939f1a2e74b58839f8c4dab3b6b3c1ce84972ae712be02845e65391ac7c", + "sha256:66324e4e1beede9ac79e60f88de548da58b1f8ab4b2f1354d8375774f997e6c0", + "sha256:6c77c9937962577a6a76917845d06af6ab9197702a42e1346d8ae2e76b5e3675", + "sha256:70dec29e8ac485dbf57481baee40781c63e381bebea080991893cd297742b8fd", + "sha256:7250a3fa399f08ec9cb3f7b1b987955d17e044f1ade821b32e5f435130250d7f", + "sha256:748290bf9112b581c525e6e6d3820621ff020ed95af6f17fedef416b27ed564c", + "sha256:7da13da6f985aab7f6f28debab00c67ff9cbacd588e8477034c0652ac141feea", + "sha256:8f959b26f2634a091bb42241c3ed8d3cedb506e7c27b8dd5c7b9f745318ddbb6", + "sha256:9de9e5188a782be6b1ce866e8a51bc76a0fbaa0e16613823fc38e4fc2556ad05", + "sha256:a48900ecea1cbb71b8c71c620dee15b62f85f7c14189bdeee54966fbd9a0c5bd", + "sha256:b87936fd2c317b6ee08a5741ea06b9d11a6074ef4cc42e031bc6403f82a32575", + "sha256:c77da1263aa361938476f04c4b6c8916001b90b2c2fdd92d8d535e1af48fba5a", + "sha256:cb5ec8eead331e3bb4ce8066cf06d2dfef1bfb1b2a73082dfe8a161301b76e37", + "sha256:cc0ee35043162abbf717b7df924597ade8e5395e7b66d18270116f8745ceb795", + "sha256:d14d30e7f46a0476efb0deb5b61343b1526f73ebb5ed84f23dc794bdb88f9d9f", + "sha256:d371e811d6b156d82aa5f9a4e08b58debf97c302a35714f6f45e35139c332e32", + "sha256:d3d20ea5782ba63ed13bc2b8c291a053c8d807a8fa927d941bd718468f7b950c", + "sha256:d3f7594930c423fd9f5d1a76bee85a2c36fd8b4b16921cae7e965f22575e9c01", + "sha256:dcef026f608f678c118779cd6591c8af6e9b4155c44e0d1bc0c87c036fb8c8c4", + "sha256:e0791ac58d91ac58f694d8d2957884df8e4e2f6687cdf367ef7eb7497f79eaa2", + "sha256:e385b637ac3acaae8022e7e47dfa7b83d3620e432e3ecb9a3f7f58f150e50921", + "sha256:e519d64089b0876c7b467274468709dadf11e41d65f63bba207e04217f47c085", + "sha256:e7229e60ac41a1202444497ddde70a48d33909e484f96eb0da9baf8dc68541df", + "sha256:ed3ad863b1b40cd1d4bd21e7498329ccaece75db5a5bf58cd3c9f130843e7102", + "sha256:f0ba29bafd8e7e22920567ce0d232c26d4d47c8b5cf4ed7b562b5db39fa199c5", + "sha256:fa2ba70284fa42c2a5ecb35e322e68823288a4251f9ba9cc77be04ae15eada68", + "sha256:fba85b6cd9c39be262fcd23865652920832b61583de2a2ca907dbd8e8a8c81e5" + ], + "markers": "python_version >= '3.5'", + "version": "==6.1" + }, + "twisted": { + "extras": [ + "tls" + ], + "hashes": [ + "sha256:77544a8945cf69b98d2946689bbe0c75de7d145cdf11f391dd487eae8fc95a12", + "sha256:aab38085ea6cda5b378b519a0ec99986874921ee8881318626b0a3414bb2631e" + ], + "markers": "python_full_version >= '3.5.4'", + "version": "==21.2.0" + }, + "txaio": { + "hashes": [ + "sha256:7d6f89745680233f1c4db9ddb748df5e88d2a7a37962be174c0fd04c8dba1dc8", + "sha256:c16b55f9a67b2419cfdf8846576e2ec9ba94fe6978a83080c352a80db31c93fb" + ], + "markers": "python_version >= '3.6'", + "version": "==21.2.1" + }, + "tzlocal": { + "hashes": [ + "sha256:643c97c5294aedc737780a49d9df30889321cbe1204eac2c2ec6134035a92e44", + "sha256:e2cb6c6b5b604af38597403e9852872d7f534962ae2954c7f35efcb1ccacf4a4" + ], + "version": "==2.1" + }, + "unidecode": { + "hashes": [ + "sha256:12435ef2fc4cdfd9cf1035a1db7e98b6b047fe591892e81f34e94959591fad00", + "sha256:8d73a97d387a956922344f6b74243c2c6771594659778744b2dbdaad8f6b727d" + ], + "version": "==1.2.0" + }, + "urllib3": { + "hashes": [ + "sha256:1b465e494e3e0d8939b50680403e3aedaa2bc434b7d5af64dfd3c958d7f5ae80", + "sha256:de3eedaad74a2683334e282005cd8d7f22f4d55fa690a2a1020a416cb0a47e73" + ], + "markers": "python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3, 3.4' and python_version < '4'", + "version": "==1.26.3" + }, + "vine": { + "hashes": [ + "sha256:4c9dceab6f76ed92105027c49c823800dd33cacce13bdedc5b914e3514b7fb30", + "sha256:7d3b1624a953da82ef63462013bbd271d3eb75751489f9807598e8f340bd637e" + ], + "markers": "python_version >= '3.6'", + "version": "==5.0.0" + }, + "vk-api": { + "hashes": [ + "sha256:847de8d37890118d874af481c40c1b79ff59bad2dac657c11270a0f12aa6546d" + ], + "index": "pypi", + "version": "==11.9.1" + }, + "wcwidth": { + "hashes": [ + "sha256:beb4802a9cebb9144e99086eff703a642a13d6a0052920003a230f3294bbe784", + "sha256:c4d647b99872929fdb7bdcaa4fbe7f01413ed3d98077df798530e5b04f116c83" + ], + "version": "==0.2.5" + }, + "zope.interface": { + "hashes": [ + "sha256:05a97ba92c1c7c26f25c9f671aa1ef85ffead6cdad13770e5b689cf983adc7e1", + "sha256:07d61722dd7d85547b7c6b0f5486b4338001fab349f2ac5cabc0b7182eb3425d", + "sha256:0a990dcc97806e5980bbb54b2e46b9cde9e48932d8e6984daf71ef1745516123", + "sha256:150e8bcb7253a34a4535aeea3de36c0bb3b1a6a47a183a95d65a194b3e07f232", + "sha256:1743bcfe45af8846b775086471c28258f4c6e9ee8ef37484de4495f15a98b549", + "sha256:1b5f6c8fff4ed32aa2dd43e84061bc8346f32d3ba6ad6e58f088fe109608f102", + "sha256:21e49123f375703cf824214939d39df0af62c47d122d955b2a8d9153ea08cfd5", + "sha256:21f579134a47083ffb5ddd1307f0405c91aa8b61ad4be6fd5af0171474fe0c45", + "sha256:27c267dc38a0f0079e96a2945ee65786d38ef111e413c702fbaaacbab6361d00", + "sha256:299bde0ab9e5c4a92f01a152b7fbabb460f31343f1416f9b7b983167ab1e33bc", + "sha256:2ab88d8f228f803fcb8cb7d222c579d13dab2d3622c51e8cf321280da01102a7", + "sha256:2ced4c35061eea623bc84c7711eedce8ecc3c2c51cd9c6afa6290df3bae9e104", + "sha256:2dcab01c660983ba5e5a612e0c935141ccbee67d2e2e14b833e01c2354bd8034", + "sha256:32546af61a9a9b141ca38d971aa6eb9800450fa6620ce6323cc30eec447861f3", + "sha256:32b40a4c46d199827d79c86bb8cb88b1bbb764f127876f2cb6f3a47f63dbada3", + "sha256:3cc94c69f6bd48ed86e8e24f358cb75095c8129827df1298518ab860115269a4", + "sha256:42b278ac0989d6f5cf58d7e0828ea6b5951464e3cf2ff229dd09a96cb6ba0c86", + "sha256:495b63fd0302f282ee6c1e6ea0f1c12cb3d1a49c8292d27287f01845ff252a96", + "sha256:4af87cdc0d4b14e600e6d3d09793dce3b7171348a094ba818e2a68ae7ee67546", + "sha256:4b94df9f2fdde7b9314321bab8448e6ad5a23b80542dcab53e329527d4099dcb", + "sha256:4c48ddb63e2b20fba4c6a2bf81b4d49e99b6d4587fb67a6cd33a2c1f003af3e3", + "sha256:4df9afd17bd5477e9f8c8b6bb8507e18dd0f8b4efe73bb99729ff203279e9e3b", + "sha256:518950fe6a5d56f94ba125107895f938a4f34f704c658986eae8255edb41163b", + "sha256:538298e4e113ccb8b41658d5a4b605bebe75e46a30ceca22a5a289cf02c80bec", + "sha256:55465121e72e208a7b69b53de791402affe6165083b2ea71b892728bd19ba9ae", + "sha256:588384d70a0f19b47409cfdb10e0c27c20e4293b74fc891df3d8eb47782b8b3e", + "sha256:6278c080d4afffc9016e14325f8734456831124e8c12caa754fd544435c08386", + "sha256:64ea6c221aeee4796860405e1aedec63424cda4202a7ad27a5066876db5b0fd2", + "sha256:681dbb33e2b40262b33fd383bae63c36d33fd79fa1a8e4092945430744ffd34a", + "sha256:6936aa9da390402d646a32a6a38d5409c2d2afb2950f045a7d02ab25a4e7d08d", + "sha256:778d0ec38bbd288b150a3ae363c8ffd88d2207a756842495e9bffd8a8afbc89a", + "sha256:8251f06a77985a2729a8bdbefbae79ee78567dddc3acbd499b87e705ca59fe24", + "sha256:83b4aa5344cce005a9cff5d0321b2e318e871cc1dfc793b66c32dd4f59e9770d", + "sha256:844fad925ac5c2ad4faaceb3b2520ad016b5280105c6e16e79838cf951903a7b", + "sha256:8ceb3667dd13b8133f2e4d637b5b00f240f066448e2aa89a41f4c2d78a26ce50", + "sha256:92dc0fb79675882d0b6138be4bf0cec7ea7c7eede60aaca78303d8e8dbdaa523", + "sha256:9789bd945e9f5bd026ed3f5b453d640befb8b1fc33a779c1fe8d3eb21fe3fb4a", + "sha256:a2b6d6eb693bc2fc6c484f2e5d93bd0b0da803fa77bf974f160533e555e4d095", + "sha256:aab9f1e34d810feb00bf841993552b8fcc6ae71d473c505381627143d0018a6a", + "sha256:abb61afd84f23099ac6099d804cdba9bd3b902aaaded3ffff47e490b0a495520", + "sha256:adf9ee115ae8ff8b6da4b854b4152f253b390ba64407a22d75456fe07dcbda65", + "sha256:aedc6c672b351afe6dfe17ff83ee5e7eb6ed44718f879a9328a68bdb20b57e11", + "sha256:b7a00ecb1434f8183395fac5366a21ee73d14900082ca37cf74993cf46baa56c", + "sha256:ba32f4a91c1cb7314c429b03afbf87b1fff4fb1c8db32260e7310104bd77f0c7", + "sha256:cbd0f2cbd8689861209cd89141371d3a22a11613304d1f0736492590aa0ab332", + "sha256:e4bc372b953bf6cec65a8d48482ba574f6e051621d157cf224227dbb55486b1e", + "sha256:eccac3d9aadc68e994b6d228cb0c8919fc47a5350d85a1b4d3d81d1e98baf40c", + "sha256:efd550b3da28195746bb43bd1d815058181a7ca6d9d6aa89dd37f5eefe2cacb7", + "sha256:efef581c8ba4d990770875e1a2218e856849d32ada2680e53aebc5d154a17e20", + "sha256:f057897711a630a0b7a6a03f1acf379b6ba25d37dc5dc217a97191984ba7f2fc", + "sha256:f37d45fab14ffef9d33a0dc3bc59ce0c5313e2253323312d47739192da94f5fd", + "sha256:f44906f70205d456d503105023041f1e63aece7623b31c390a0103db4de17537" + ], + "markers": "python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3, 3.4'", + "version": "==5.2.0" + } + }, + "develop": {} +} diff --git a/aggregator/client.py b/aggregator/client.py index c771968..5bb60e0 100644 --- a/aggregator/client.py +++ b/aggregator/client.py @@ -1,10 +1,12 @@ import os +from typing import List from django.core.files.storage import default_storage from djconfig import config -from pyrogram import Client, MessageHandler, DeletedMessagesHandler, \ - Message as PyrogramMessage, Messages as PyrogramMessages -from pyrogram.api.errors import ChannelPrivate +from pyrogram import Client +from pyrogram.handlers import MessageHandler, DeletedMessagesHandler +from pyrogram.types import Message as PyrogramMessage +from pyrogram.errors import ChannelPrivate from pyrogram.session import Session from aggregator.models import AggregationSource, Message, Chat @@ -30,8 +32,8 @@ def save_message(client, message: PyrogramMessage): Message.from_obj(message, client) -def delete_messages(client, messages: PyrogramMessages): - for message in messages.messages: +def delete_messages(client, messages: List[PyrogramMessage]): + for message in messages: Message.objects.filter(chat__chat_id=message.chat.id, message_id=message.message_id).update(deleted=True) diff --git a/aggregator/forms.py b/aggregator/forms.py index c8d4aee..a143ec5 100644 --- a/aggregator/forms.py +++ b/aggregator/forms.py @@ -3,7 +3,7 @@ from django.core.exceptions import ValidationError from django.core.files.storage import default_storage from django.forms import ModelForm from djconfig.forms import ConfigForm -from pyrogram.api.errors import ChannelPrivate +from pyrogram.errors import ChannelPrivate from config.utils import parse_mtproto_chat from .client import get_client diff --git a/aggregator/models.py b/aggregator/models.py index 9558917..4e57d07 100644 --- a/aggregator/models.py +++ b/aggregator/models.py @@ -5,7 +5,7 @@ from tempfile import TemporaryDirectory import pytz from django.conf import settings from django.db import models, transaction -from pyrogram import Chat as PyrogramChat, Message as PyrogramMessage +from pyrogram.types import Chat as PyrogramChat, Message as PyrogramMessage class AggregationSource(models.Model): diff --git a/aggregator/signals.py b/aggregator/signals.py index 4920885..f1d6fd8 100644 --- a/aggregator/signals.py +++ b/aggregator/signals.py @@ -1,4 +1,4 @@ -from pyrogram import Error +from pyrogram.errors import RPCError from .client import get_client from .models import Chat, AggregationSource @@ -13,5 +13,5 @@ def chat_deleted(sender, instance: Chat, **kwargs): with get_client() as client: try: client.leave_chat(instance.chat_id) - except Error: + except RPCError: pass diff --git a/bots/migrations/0001_initial.py b/bots/migrations/0001_initial.py deleted file mode 100644 index a0e0718..0000000 --- a/bots/migrations/0001_initial.py +++ /dev/null @@ -1,33 +0,0 @@ -# Generated by Django 2.1.5 on 2019-11-12 15:15 - -from django.conf import settings -from django.db import migrations, models -import django.db.models.deletion - - -class Migration(migrations.Migration): - - initial = True - - dependencies = [ - ('contenttypes', '0002_remove_content_type_name'), - migrations.swappable_dependency(settings.AUTH_USER_MODEL), - ] - - operations = [ - migrations.CreateModel( - name='TelegramBot', - fields=[ - ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), - ('title', models.CharField(max_length=32)), - ('bot_token', models.CharField(max_length=256)), - ('config_id', models.PositiveIntegerField()), - ('config_type', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='contenttypes.ContentType')), - ('owner', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to=settings.AUTH_USER_MODEL)), - ], - ), - migrations.AlterUniqueTogether( - name='telegrambot', - unique_together={('config_type', 'config_id')}, - ), - ] diff --git a/bots/migrations/0001_squashed_0025_auto_20210311_2341.py b/bots/migrations/0001_squashed_0025_auto_20210311_2341.py new file mode 100644 index 0000000..9767988 --- /dev/null +++ b/bots/migrations/0001_squashed_0025_auto_20210311_2341.py @@ -0,0 +1,191 @@ +# Generated by Django 3.1.7 on 2021-03-11 20:43 + +from django.conf import settings +from django.db import migrations, models +import django.db.models.deletion + + +class Migration(migrations.Migration): + + replaces = [('bots', '0001_initial'), ('bots', '0002_echobotmoduleconfig'), ('bots', '0003_telegrambot_active'), ('bots', '0004_auto_20191112_1908'), ('bots', '0005_channelhelperbotmoduleconfig'), ('bots', '0006_overlaybotmoduleconfig'), ('bots', '0007_auto_20191116_0314'), ('bots', '0008_auto_20191124_1922'), ('bots', '0009_auto_20191126_0058'), ('bots', '0010_auto_20191126_0112'), ('bots', '0011_auto_20191127_2117'), ('bots', '0012_auto_20191127_2139'), ('bots', '0013_auto_20191127_2214'), ('bots', '0014_auto_20191127_2223'), ('bots', '0015_cyberlinabotmoduleconfig_mtg_train_new'), ('bots', '0016_auto_20191128_0011'), ('bots', '0017_auto_20191128_0012'), ('bots', '0018_overlayimage'), ('bots', '0019_remove_overlaybotmoduleconfig_image'), ('bots', '0020_pingbotcategory_pingbotmoduleconfig'), ('bots', '0021_auto_20200212_2022'), ('bots', '0022_auto_20200505_1146'), ('bots', '0023_overlaybotmoduleconfig_send_avatar_on_start'), ('bots', '0024_spoilerbotmoduleconfig_spoilermessage'), ('bots', '0025_auto_20210311_2341')] + + initial = True + + dependencies = [ + migrations.swappable_dependency(settings.AUTH_USER_MODEL), + ('contenttypes', '0002_remove_content_type_name'), + ] + + operations = [ + migrations.CreateModel( + name='EchoBotModuleConfig', + fields=[ + ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ('prefix', models.TextField()), + ], + options={ + 'abstract': False, + }, + ), + migrations.CreateModel( + name='TelegramBot', + fields=[ + ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ('title', models.CharField(max_length=32)), + ('bot_token', models.CharField(max_length=256)), + ('config_id', models.PositiveIntegerField()), + ('config_type', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='contenttypes.contenttype')), + ('owner', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to=settings.AUTH_USER_MODEL)), + ('active', models.BooleanField(default=True)), + ('periodic_interval', models.DurationField(blank=True, null=True)), + ('periodic_last_run', models.DateTimeField(blank=True, null=True)), + ('rpc_name', models.CharField(blank=True, max_length=32, null=True)), + ], + options={ + 'unique_together': {('config_type', 'config_id')}, + }, + ), + migrations.CreateModel( + name='OverlayBotModuleConfig', + fields=[ + ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ('comment', models.TextField(blank=True, null=True)), + ('start_text', models.TextField(blank=True, null=True)), + ('type_error_text', models.TextField(blank=True, null=True)), + ('send_avatar_on_start', models.BooleanField(default=False)), + ], + options={ + 'abstract': False, + }, + ), + migrations.CreateModel( + name='ChannelHelperBotModuleConfig', + fields=[ + ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ('chat_id', models.CharField(max_length=32)), + ('queued', models.BooleanField(default=False)), + ], + options={ + 'abstract': False, + }, + ), + migrations.CreateModel( + name='QueuedItem', + fields=[ + ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ('type', models.CharField(max_length=12)), + ('args', models.TextField()), + ('config', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='queued_items', to='bots.channelhelperbotmoduleconfig')), + ], + ), + migrations.CreateModel( + name='CyberLinaBotModuleConfig', + fields=[ + ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ('first_part', models.JSONField(default=list)), + ('second_part', models.JSONField(default=list)), + ('third_part', models.JSONField(default=list)), + ('emoji', models.JSONField(default=list)), + ('already_ran', models.JSONField(default=list)), + ('welcome_reactions', models.JSONField(default=list)), + ('inline_reactions', models.JSONField(default=list)), + ('_mtg_data', models.JSONField(blank=True, default=dict, null=True)), + ('_mtg_corpus', models.TextField(blank=True, null=True)), + ('mtg_train', models.TextField(blank=True, null=True)), + ], + options={ + 'abstract': False, + }, + ), + migrations.CreateModel( + name='CyberLinaChat', + fields=[ + ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ('name', models.TextField()), + ('chat_id', models.BigIntegerField(db_index=True)), + ('last_run', models.DateField(blank=True, null=True)), + ('config', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='chats', to='bots.cyberlinabotmoduleconfig')), + ], + ), + migrations.CreateModel( + name='CyberLinaUser', + fields=[ + ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ('user_id', models.BigIntegerField(db_index=True)), + ('name', models.TextField()), + ('chat', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='users', to='bots.cyberlinachat')), + ], + options={ + 'unique_together': {('chat', 'user_id')}, + }, + ), + migrations.AddField( + model_name='cyberlinachat', + name='last_choice', + field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='+', to='bots.cyberlinauser'), + ), + migrations.AlterUniqueTogether( + name='cyberlinachat', + unique_together={('config', 'chat_id')}, + ), + migrations.CreateModel( + name='OverlayImage', + fields=[ + ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ('image', models.ImageField(upload_to='')), + ('config', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='images', to='bots.overlaybotmoduleconfig')), + ], + ), + migrations.CreateModel( + name='PingBotModuleConfig', + fields=[ + ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ('no_users_text', models.TextField(default='No users found')), + ('message_template', models.TextField(default='{mentions}')), + ], + options={ + 'abstract': False, + }, + ), + migrations.CreateModel( + name='ChannelHelperUser', + fields=[ + ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ('name', models.CharField(max_length=32)), + ('user_id', models.BigIntegerField(db_index=True)), + ], + ), + migrations.AddField( + model_name='channelhelperbotmoduleconfig', + name='users', + field=models.ManyToManyField(to='bots.ChannelHelperUser'), + ), + migrations.CreateModel( + name='SpoilerBotModuleConfig', + fields=[ + ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ], + options={ + 'abstract': False, + }, + ), + migrations.CreateModel( + name='SpoilerMessage', + fields=[ + ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ('text', models.TextField()), + ], + ), + migrations.CreateModel( + name='PingBotCategory', + fields=[ + ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ('chat_id', models.BigIntegerField(db_index=True)), + ('cat_name', models.CharField(db_index=True, max_length=64)), + ('user_ids', models.JSONField(null=True)), + ], + options={ + 'unique_together': {('chat_id', 'cat_name')}, + }, + ), + ] diff --git a/bots/migrations/0002_echobotmoduleconfig.py b/bots/migrations/0002_echobotmoduleconfig.py deleted file mode 100644 index 490adae..0000000 --- a/bots/migrations/0002_echobotmoduleconfig.py +++ /dev/null @@ -1,23 +0,0 @@ -# Generated by Django 2.1.5 on 2019-11-12 15:26 - -from django.db import migrations, models - - -class Migration(migrations.Migration): - - dependencies = [ - ('bots', '0001_initial'), - ] - - operations = [ - migrations.CreateModel( - name='EchoBotModuleConfig', - fields=[ - ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), - ('prefix', models.TextField()), - ], - options={ - 'abstract': False, - }, - ), - ] diff --git a/bots/migrations/0003_telegrambot_active.py b/bots/migrations/0003_telegrambot_active.py deleted file mode 100644 index 35a4c8d..0000000 --- a/bots/migrations/0003_telegrambot_active.py +++ /dev/null @@ -1,18 +0,0 @@ -# Generated by Django 2.1.5 on 2019-11-12 15:40 - -from django.db import migrations, models - - -class Migration(migrations.Migration): - - dependencies = [ - ('bots', '0002_echobotmoduleconfig'), - ] - - operations = [ - migrations.AddField( - model_name='telegrambot', - name='active', - field=models.BooleanField(default=True), - ), - ] diff --git a/bots/migrations/0004_auto_20191112_1908.py b/bots/migrations/0004_auto_20191112_1908.py deleted file mode 100644 index af4b763..0000000 --- a/bots/migrations/0004_auto_20191112_1908.py +++ /dev/null @@ -1,28 +0,0 @@ -# Generated by Django 2.1.5 on 2019-11-12 16:08 - -from django.db import migrations, models - - -class Migration(migrations.Migration): - - dependencies = [ - ('bots', '0003_telegrambot_active'), - ] - - operations = [ - migrations.AddField( - model_name='telegrambot', - name='periodic_interval', - field=models.DurationField(blank=True, null=True), - ), - migrations.AddField( - model_name='telegrambot', - name='periodic_last_run', - field=models.DateTimeField(blank=True, null=True), - ), - migrations.AddField( - model_name='telegrambot', - name='rpc_name', - field=models.CharField(blank=True, max_length=32, null=True), - ), - ] diff --git a/bots/migrations/0005_channelhelperbotmoduleconfig.py b/bots/migrations/0005_channelhelperbotmoduleconfig.py deleted file mode 100644 index 72e8b5a..0000000 --- a/bots/migrations/0005_channelhelperbotmoduleconfig.py +++ /dev/null @@ -1,23 +0,0 @@ -# Generated by Django 2.1.5 on 2019-11-12 16:15 - -from django.db import migrations, models - - -class Migration(migrations.Migration): - - dependencies = [ - ('bots', '0004_auto_20191112_1908'), - ] - - operations = [ - migrations.CreateModel( - name='ChannelHelperBotModuleConfig', - fields=[ - ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), - ('chat_id', models.CharField(max_length=32)), - ], - options={ - 'abstract': False, - }, - ), - ] diff --git a/bots/migrations/0006_overlaybotmoduleconfig.py b/bots/migrations/0006_overlaybotmoduleconfig.py deleted file mode 100644 index 9b4d0d7..0000000 --- a/bots/migrations/0006_overlaybotmoduleconfig.py +++ /dev/null @@ -1,24 +0,0 @@ -# Generated by Django 2.1.5 on 2019-11-16 00:05 - -from django.db import migrations, models - - -class Migration(migrations.Migration): - - dependencies = [ - ('bots', '0005_channelhelperbotmoduleconfig'), - ] - - operations = [ - migrations.CreateModel( - name='OverlayBotModuleConfig', - fields=[ - ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), - ('comment', models.TextField(blank=True, null=True)), - ('image', models.ImageField(upload_to='')), - ], - options={ - 'abstract': False, - }, - ), - ] diff --git a/bots/migrations/0007_auto_20191116_0314.py b/bots/migrations/0007_auto_20191116_0314.py deleted file mode 100644 index 8897920..0000000 --- a/bots/migrations/0007_auto_20191116_0314.py +++ /dev/null @@ -1,23 +0,0 @@ -# Generated by Django 2.1.5 on 2019-11-16 00:14 - -from django.db import migrations, models - - -class Migration(migrations.Migration): - - dependencies = [ - ('bots', '0006_overlaybotmoduleconfig'), - ] - - operations = [ - migrations.AddField( - model_name='overlaybotmoduleconfig', - name='start_text', - field=models.TextField(blank=True, null=True), - ), - migrations.AddField( - model_name='overlaybotmoduleconfig', - name='type_error_text', - field=models.TextField(blank=True, null=True), - ), - ] diff --git a/bots/migrations/0008_auto_20191124_1922.py b/bots/migrations/0008_auto_20191124_1922.py deleted file mode 100644 index ceb5575..0000000 --- a/bots/migrations/0008_auto_20191124_1922.py +++ /dev/null @@ -1,32 +0,0 @@ -# Generated by Django 2.1.5 on 2019-11-24 16:22 - -from django.db import migrations, models -import django.db.models.deletion - - -class Migration(migrations.Migration): - - dependencies = [ - ('bots', '0007_auto_20191116_0314'), - ] - - operations = [ - migrations.CreateModel( - name='QueuedItem', - fields=[ - ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), - ('type', models.CharField(max_length=12)), - ('args', models.TextField()), - ], - ), - migrations.AddField( - model_name='channelhelperbotmoduleconfig', - name='queued', - field=models.BooleanField(default=False), - ), - migrations.AddField( - model_name='queueditem', - name='config', - field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='queued_items', to='bots.ChannelHelperBotModuleConfig'), - ), - ] diff --git a/bots/migrations/0009_auto_20191126_0058.py b/bots/migrations/0009_auto_20191126_0058.py deleted file mode 100644 index c5ad099..0000000 --- a/bots/migrations/0009_auto_20191126_0058.py +++ /dev/null @@ -1,63 +0,0 @@ -# Generated by Django 3.0rc1 on 2019-11-25 21:58 - -from django.db import migrations, models -import django.db.models.deletion -import jsonfield.encoder -import jsonfield.fields - - -class Migration(migrations.Migration): - - dependencies = [ - ('bots', '0008_auto_20191124_1922'), - ] - - operations = [ - migrations.CreateModel( - name='CyberLinaBotModuleConfig', - fields=[ - ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), - ('first_part', jsonfield.fields.JSONField(default=[], dump_kwargs={'cls': jsonfield.encoder.JSONEncoder, 'separators': (',', ':')}, load_kwargs={})), - ('second_part', jsonfield.fields.JSONField(default=[], dump_kwargs={'cls': jsonfield.encoder.JSONEncoder, 'separators': (',', ':')}, load_kwargs={})), - ('third_part', jsonfield.fields.JSONField(default=[], dump_kwargs={'cls': jsonfield.encoder.JSONEncoder, 'separators': (',', ':')}, load_kwargs={})), - ('emoji', jsonfield.fields.JSONField(default=[], dump_kwargs={'cls': jsonfield.encoder.JSONEncoder, 'separators': (',', ':')}, load_kwargs={})), - ('already_ran', jsonfield.fields.JSONField(default=[], dump_kwargs={'cls': jsonfield.encoder.JSONEncoder, 'separators': (',', ':')}, load_kwargs={})), - ('welcome_reactions', jsonfield.fields.JSONField(default=[], dump_kwargs={'cls': jsonfield.encoder.JSONEncoder, 'separators': (',', ':')}, load_kwargs={})), - ('inline_reactions', jsonfield.fields.JSONField(default=[], dump_kwargs={'cls': jsonfield.encoder.JSONEncoder, 'separators': (',', ':')}, load_kwargs={})), - ], - options={ - 'abstract': False, - }, - ), - migrations.CreateModel( - name='CyberLinaChat', - fields=[ - ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), - ('name', models.TextField()), - ('chat_id', models.BigIntegerField(db_index=True)), - ('last_run', models.DateField(blank=True, null=True)), - ('config', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='chats', to='bots.CyberLinaBotModuleConfig')), - ], - ), - migrations.CreateModel( - name='CyberLinaUser', - fields=[ - ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), - ('user_id', models.BigIntegerField(db_index=True)), - ('name', models.TextField()), - ('chat', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='users', to='bots.CyberLinaChat')), - ], - options={ - 'unique_together': {('chat', 'user_id')}, - }, - ), - migrations.AddField( - model_name='cyberlinachat', - name='last_choice', - field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='+', to='bots.CyberLinaUser'), - ), - migrations.AlterUniqueTogether( - name='cyberlinachat', - unique_together={('config', 'chat_id')}, - ), - ] diff --git a/bots/migrations/0010_auto_20191126_0112.py b/bots/migrations/0010_auto_20191126_0112.py deleted file mode 100644 index cabbf1b..0000000 --- a/bots/migrations/0010_auto_20191126_0112.py +++ /dev/null @@ -1,50 +0,0 @@ -# Generated by Django 3.0rc1 on 2019-11-25 22:12 - -from django.db import migrations -import jsonfield.encoder -import jsonfield.fields - - -class Migration(migrations.Migration): - - dependencies = [ - ('bots', '0009_auto_20191126_0058'), - ] - - operations = [ - migrations.AlterField( - model_name='cyberlinabotmoduleconfig', - name='already_ran', - field=jsonfield.fields.JSONField(default={'items': []}, dump_kwargs={'cls': jsonfield.encoder.JSONEncoder, 'separators': (',', ':')}, load_kwargs={}), - ), - migrations.AlterField( - model_name='cyberlinabotmoduleconfig', - name='emoji', - field=jsonfield.fields.JSONField(default={'items': []}, dump_kwargs={'cls': jsonfield.encoder.JSONEncoder, 'separators': (',', ':')}, load_kwargs={}), - ), - migrations.AlterField( - model_name='cyberlinabotmoduleconfig', - name='first_part', - field=jsonfield.fields.JSONField(default={'items': []}, dump_kwargs={'cls': jsonfield.encoder.JSONEncoder, 'separators': (',', ':')}, load_kwargs={}), - ), - migrations.AlterField( - model_name='cyberlinabotmoduleconfig', - name='inline_reactions', - field=jsonfield.fields.JSONField(default={'items': []}, dump_kwargs={'cls': jsonfield.encoder.JSONEncoder, 'separators': (',', ':')}, load_kwargs={}), - ), - migrations.AlterField( - model_name='cyberlinabotmoduleconfig', - name='second_part', - field=jsonfield.fields.JSONField(default={'items': []}, dump_kwargs={'cls': jsonfield.encoder.JSONEncoder, 'separators': (',', ':')}, load_kwargs={}), - ), - migrations.AlterField( - model_name='cyberlinabotmoduleconfig', - name='third_part', - field=jsonfield.fields.JSONField(default={'items': []}, dump_kwargs={'cls': jsonfield.encoder.JSONEncoder, 'separators': (',', ':')}, load_kwargs={}), - ), - migrations.AlterField( - model_name='cyberlinabotmoduleconfig', - name='welcome_reactions', - field=jsonfield.fields.JSONField(default={'items': []}, dump_kwargs={'cls': jsonfield.encoder.JSONEncoder, 'separators': (',', ':')}, load_kwargs={}), - ), - ] diff --git a/bots/migrations/0011_auto_20191127_2117.py b/bots/migrations/0011_auto_20191127_2117.py deleted file mode 100644 index b135a2c..0000000 --- a/bots/migrations/0011_auto_20191127_2117.py +++ /dev/null @@ -1,50 +0,0 @@ -# Generated by Django 3.0rc1 on 2019-11-27 18:17 - -from django.db import migrations -import jsonfield.encoder -import jsonfield.fields - - -class Migration(migrations.Migration): - - dependencies = [ - ('bots', '0010_auto_20191126_0112'), - ] - - operations = [ - migrations.AlterField( - model_name='cyberlinabotmoduleconfig', - name='already_ran', - field=jsonfield.fields.JSONField(default='{"items": []}', dump_kwargs={'cls': jsonfield.encoder.JSONEncoder, 'separators': (',', ':')}, load_kwargs={}), - ), - migrations.AlterField( - model_name='cyberlinabotmoduleconfig', - name='emoji', - field=jsonfield.fields.JSONField(default='{"items": []}', dump_kwargs={'cls': jsonfield.encoder.JSONEncoder, 'separators': (',', ':')}, load_kwargs={}), - ), - migrations.AlterField( - model_name='cyberlinabotmoduleconfig', - name='first_part', - field=jsonfield.fields.JSONField(default='{"items": []}', dump_kwargs={'cls': jsonfield.encoder.JSONEncoder, 'separators': (',', ':')}, load_kwargs={}), - ), - migrations.AlterField( - model_name='cyberlinabotmoduleconfig', - name='inline_reactions', - field=jsonfield.fields.JSONField(default='{"items": []}', dump_kwargs={'cls': jsonfield.encoder.JSONEncoder, 'separators': (',', ':')}, load_kwargs={}), - ), - migrations.AlterField( - model_name='cyberlinabotmoduleconfig', - name='second_part', - field=jsonfield.fields.JSONField(default='{"items": []}', dump_kwargs={'cls': jsonfield.encoder.JSONEncoder, 'separators': (',', ':')}, load_kwargs={}), - ), - migrations.AlterField( - model_name='cyberlinabotmoduleconfig', - name='third_part', - field=jsonfield.fields.JSONField(default='{"items": []}', dump_kwargs={'cls': jsonfield.encoder.JSONEncoder, 'separators': (',', ':')}, load_kwargs={}), - ), - migrations.AlterField( - model_name='cyberlinabotmoduleconfig', - name='welcome_reactions', - field=jsonfield.fields.JSONField(default='{"items": []}', dump_kwargs={'cls': jsonfield.encoder.JSONEncoder, 'separators': (',', ':')}, load_kwargs={}), - ), - ] diff --git a/bots/migrations/0012_auto_20191127_2139.py b/bots/migrations/0012_auto_20191127_2139.py deleted file mode 100644 index d2938b7..0000000 --- a/bots/migrations/0012_auto_20191127_2139.py +++ /dev/null @@ -1,50 +0,0 @@ -# Generated by Django 3.0rc1 on 2019-11-27 18:39 - -from django.db import migrations -import jsonfield.encoder -import jsonfield.fields - - -class Migration(migrations.Migration): - - dependencies = [ - ('bots', '0011_auto_20191127_2117'), - ] - - operations = [ - migrations.AlterField( - model_name='cyberlinabotmoduleconfig', - name='already_ran', - field=jsonfield.fields.JSONField(default='[]', dump_kwargs={'cls': jsonfield.encoder.JSONEncoder, 'separators': (',', ':')}, load_kwargs={}), - ), - migrations.AlterField( - model_name='cyberlinabotmoduleconfig', - name='emoji', - field=jsonfield.fields.JSONField(default='[]', dump_kwargs={'cls': jsonfield.encoder.JSONEncoder, 'separators': (',', ':')}, load_kwargs={}), - ), - migrations.AlterField( - model_name='cyberlinabotmoduleconfig', - name='first_part', - field=jsonfield.fields.JSONField(default='[]', dump_kwargs={'cls': jsonfield.encoder.JSONEncoder, 'separators': (',', ':')}, load_kwargs={}), - ), - migrations.AlterField( - model_name='cyberlinabotmoduleconfig', - name='inline_reactions', - field=jsonfield.fields.JSONField(default='[]', dump_kwargs={'cls': jsonfield.encoder.JSONEncoder, 'separators': (',', ':')}, load_kwargs={}), - ), - migrations.AlterField( - model_name='cyberlinabotmoduleconfig', - name='second_part', - field=jsonfield.fields.JSONField(default='[]', dump_kwargs={'cls': jsonfield.encoder.JSONEncoder, 'separators': (',', ':')}, load_kwargs={}), - ), - migrations.AlterField( - model_name='cyberlinabotmoduleconfig', - name='third_part', - field=jsonfield.fields.JSONField(default='[]', dump_kwargs={'cls': jsonfield.encoder.JSONEncoder, 'separators': (',', ':')}, load_kwargs={}), - ), - migrations.AlterField( - model_name='cyberlinabotmoduleconfig', - name='welcome_reactions', - field=jsonfield.fields.JSONField(default='[]', dump_kwargs={'cls': jsonfield.encoder.JSONEncoder, 'separators': (',', ':')}, load_kwargs={}), - ), - ] diff --git a/bots/migrations/0013_auto_20191127_2214.py b/bots/migrations/0013_auto_20191127_2214.py deleted file mode 100644 index bb2cd3c..0000000 --- a/bots/migrations/0013_auto_20191127_2214.py +++ /dev/null @@ -1,25 +0,0 @@ -# Generated by Django 3.0rc1 on 2019-11-27 19:14 - -from django.db import migrations, models -import jsonfield.encoder -import jsonfield.fields - - -class Migration(migrations.Migration): - - dependencies = [ - ('bots', '0012_auto_20191127_2139'), - ] - - operations = [ - migrations.AddField( - model_name='cyberlinabotmoduleconfig', - name='_mtg_data', - field=jsonfield.fields.JSONField(default='{}', dump_kwargs={'cls': jsonfield.encoder.JSONEncoder, 'separators': (',', ':')}, load_kwargs={}), - ), - migrations.AddField( - model_name='cyberlinabotmoduleconfig', - name='mtg_train', - field=models.TextField(blank=True, null=True), - ), - ] diff --git a/bots/migrations/0014_auto_20191127_2223.py b/bots/migrations/0014_auto_20191127_2223.py deleted file mode 100644 index 8238e0e..0000000 --- a/bots/migrations/0014_auto_20191127_2223.py +++ /dev/null @@ -1,20 +0,0 @@ -# Generated by Django 3.0rc1 on 2019-11-27 19:23 - -from django.db import migrations -import jsonfield.encoder -import jsonfield.fields - - -class Migration(migrations.Migration): - - dependencies = [ - ('bots', '0013_auto_20191127_2214'), - ] - - operations = [ - migrations.AlterField( - model_name='cyberlinabotmoduleconfig', - name='_mtg_data', - field=jsonfield.fields.JSONField(blank=True, default={}, dump_kwargs={'cls': jsonfield.encoder.JSONEncoder, 'separators': (',', ':')}, load_kwargs={}, null=True), - ), - ] diff --git a/bots/migrations/0015_cyberlinabotmoduleconfig_mtg_train_new.py b/bots/migrations/0015_cyberlinabotmoduleconfig_mtg_train_new.py deleted file mode 100644 index ac32d04..0000000 --- a/bots/migrations/0015_cyberlinabotmoduleconfig_mtg_train_new.py +++ /dev/null @@ -1,18 +0,0 @@ -# Generated by Django 3.0rc1 on 2019-11-27 21:11 - -from django.db import migrations, models - - -class Migration(migrations.Migration): - - dependencies = [ - ('bots', '0014_auto_20191127_2223'), - ] - - operations = [ - migrations.AddField( - model_name='cyberlinabotmoduleconfig', - name='mtg_train_new', - field=models.TextField(blank=True, null=True), - ), - ] diff --git a/bots/migrations/0016_auto_20191128_0011.py b/bots/migrations/0016_auto_20191128_0011.py deleted file mode 100644 index f4c5c98..0000000 --- a/bots/migrations/0016_auto_20191128_0011.py +++ /dev/null @@ -1,18 +0,0 @@ -# Generated by Django 3.0rc1 on 2019-11-27 21:11 - -from django.db import migrations - - -class Migration(migrations.Migration): - - dependencies = [ - ('bots', '0015_cyberlinabotmoduleconfig_mtg_train_new'), - ] - - operations = [ - migrations.RenameField( - model_name='cyberlinabotmoduleconfig', - old_name='mtg_train', - new_name='_mtg_corpus', - ), - ] diff --git a/bots/migrations/0017_auto_20191128_0012.py b/bots/migrations/0017_auto_20191128_0012.py deleted file mode 100644 index e39b19a..0000000 --- a/bots/migrations/0017_auto_20191128_0012.py +++ /dev/null @@ -1,18 +0,0 @@ -# Generated by Django 3.0rc1 on 2019-11-27 21:12 - -from django.db import migrations - - -class Migration(migrations.Migration): - - dependencies = [ - ('bots', '0016_auto_20191128_0011'), - ] - - operations = [ - migrations.RenameField( - model_name='cyberlinabotmoduleconfig', - old_name='mtg_train_new', - new_name='mtg_train', - ), - ] diff --git a/bots/migrations/0018_overlayimage.py b/bots/migrations/0018_overlayimage.py deleted file mode 100644 index c22330d..0000000 --- a/bots/migrations/0018_overlayimage.py +++ /dev/null @@ -1,22 +0,0 @@ -# Generated by Django 3.0rc1 on 2020-02-10 15:17 - -from django.db import migrations, models -import django.db.models.deletion - - -class Migration(migrations.Migration): - - dependencies = [ - ('bots', '0017_auto_20191128_0012'), - ] - - operations = [ - migrations.CreateModel( - name='OverlayImage', - fields=[ - ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), - ('image', models.ImageField(upload_to='')), - ('config', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='images', to='bots.OverlayBotModuleConfig')), - ], - ), - ] diff --git a/bots/migrations/0019_remove_overlaybotmoduleconfig_image.py b/bots/migrations/0019_remove_overlaybotmoduleconfig_image.py deleted file mode 100644 index 2b1548f..0000000 --- a/bots/migrations/0019_remove_overlaybotmoduleconfig_image.py +++ /dev/null @@ -1,17 +0,0 @@ -# Generated by Django 3.0rc1 on 2020-02-10 15:57 - -from django.db import migrations - - -class Migration(migrations.Migration): - - dependencies = [ - ('bots', '0018_overlayimage'), - ] - - operations = [ - migrations.RemoveField( - model_name='overlaybotmoduleconfig', - name='image', - ), - ] diff --git a/bots/migrations/0020_pingbotcategory_pingbotmoduleconfig.py b/bots/migrations/0020_pingbotcategory_pingbotmoduleconfig.py deleted file mode 100644 index 196af09..0000000 --- a/bots/migrations/0020_pingbotcategory_pingbotmoduleconfig.py +++ /dev/null @@ -1,38 +0,0 @@ -# Generated by Django 3.0rc1 on 2020-02-12 17:16 - -from django.db import migrations, models -import jsonfield.encoder -import jsonfield.fields - - -class Migration(migrations.Migration): - - dependencies = [ - ('bots', '0019_remove_overlaybotmoduleconfig_image'), - ] - - operations = [ - migrations.CreateModel( - name='PingBotModuleConfig', - fields=[ - ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), - ('no_users_text', models.TextField(default='No users found')), - ('message_template', models.TextField(default='{mentions}')), - ], - options={ - 'abstract': False, - }, - ), - migrations.CreateModel( - name='PingBotCategory', - fields=[ - ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), - ('chat_id', models.BigIntegerField(db_index=True)), - ('cat_name', models.CharField(db_index=True, max_length=64)), - ('user_ids', jsonfield.fields.JSONField(default='[]', dump_kwargs={'cls': jsonfield.encoder.JSONEncoder, 'separators': (',', ':')}, load_kwargs={})), - ], - options={ - 'unique_together': {('chat_id', 'cat_name')}, - }, - ), - ] diff --git a/bots/migrations/0021_auto_20200212_2022.py b/bots/migrations/0021_auto_20200212_2022.py deleted file mode 100644 index c0bc9c7..0000000 --- a/bots/migrations/0021_auto_20200212_2022.py +++ /dev/null @@ -1,20 +0,0 @@ -# Generated by Django 3.0rc1 on 2020-02-12 17:22 - -from django.db import migrations -import jsonfield.encoder -import jsonfield.fields - - -class Migration(migrations.Migration): - - dependencies = [ - ('bots', '0020_pingbotcategory_pingbotmoduleconfig'), - ] - - operations = [ - migrations.AlterField( - model_name='pingbotcategory', - name='user_ids', - field=jsonfield.fields.JSONField(dump_kwargs={'cls': jsonfield.encoder.JSONEncoder, 'separators': (',', ':')}, load_kwargs={}, null=True), - ), - ] diff --git a/bots/migrations/0022_auto_20200505_1146.py b/bots/migrations/0022_auto_20200505_1146.py deleted file mode 100644 index fd34e5e..0000000 --- a/bots/migrations/0022_auto_20200505_1146.py +++ /dev/null @@ -1,26 +0,0 @@ -# Generated by Django 3.0rc1 on 2020-05-05 08:46 - -from django.db import migrations, models - - -class Migration(migrations.Migration): - - dependencies = [ - ('bots', '0021_auto_20200212_2022'), - ] - - operations = [ - migrations.CreateModel( - name='ChannelHelperUser', - fields=[ - ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), - ('name', models.CharField(max_length=32)), - ('user_id', models.BigIntegerField(db_index=True)), - ], - ), - migrations.AddField( - model_name='channelhelperbotmoduleconfig', - name='users', - field=models.ManyToManyField(to='bots.ChannelHelperUser'), - ), - ] diff --git a/bots/migrations/0023_overlaybotmoduleconfig_send_avatar_on_start.py b/bots/migrations/0023_overlaybotmoduleconfig_send_avatar_on_start.py deleted file mode 100644 index b7a4b12..0000000 --- a/bots/migrations/0023_overlaybotmoduleconfig_send_avatar_on_start.py +++ /dev/null @@ -1,18 +0,0 @@ -# Generated by Django 3.0rc1 on 2020-06-02 12:51 - -from django.db import migrations, models - - -class Migration(migrations.Migration): - - dependencies = [ - ('bots', '0022_auto_20200505_1146'), - ] - - operations = [ - migrations.AddField( - model_name='overlaybotmoduleconfig', - name='send_avatar_on_start', - field=models.BooleanField(default=False), - ), - ] diff --git a/bots/migrations/0024_spoilerbotmoduleconfig_spoilermessage.py b/bots/migrations/0024_spoilerbotmoduleconfig_spoilermessage.py deleted file mode 100644 index 8dbb462..0000000 --- a/bots/migrations/0024_spoilerbotmoduleconfig_spoilermessage.py +++ /dev/null @@ -1,29 +0,0 @@ -# Generated by Django 3.0rc1 on 2020-12-11 10:36 - -from django.db import migrations, models - - -class Migration(migrations.Migration): - - dependencies = [ - ('bots', '0023_overlaybotmoduleconfig_send_avatar_on_start'), - ] - - operations = [ - migrations.CreateModel( - name='SpoilerBotModuleConfig', - fields=[ - ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), - ], - options={ - 'abstract': False, - }, - ), - migrations.CreateModel( - name='SpoilerMessage', - fields=[ - ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), - ('text', models.TextField()), - ], - ), - ] diff --git a/bots/modules/cyberlina.py b/bots/modules/cyberlina.py index 7f8627c..a78448c 100644 --- a/bots/modules/cyberlina.py +++ b/bots/modules/cyberlina.py @@ -8,7 +8,6 @@ import markovify from django.db import models from django.utils.timezone import localdate, now, make_aware, localtime from jsoneditor.forms import JSONEditor -from jsonfield import JSONField from telegram import Update, Chat, User, InlineQueryResultArticle, InputTextMessageContent from telegram.error import BadRequest from telegram.ext import Dispatcher, CallbackContext, MessageHandler, Filters, CommandHandler, InlineQueryHandler @@ -18,14 +17,14 @@ from bots.models import TelegramBotModuleConfig class CyberLinaBotModuleConfig(TelegramBotModuleConfig): - first_part = JSONField(default='[]') - second_part = JSONField(default='[]') - third_part = JSONField(default='[]') - emoji = JSONField(default='[]') - already_ran = JSONField(default='[]') - welcome_reactions = JSONField(default='[]') - inline_reactions = JSONField(default='[]') - _mtg_data = JSONField(default={}, blank=True, null=True) + first_part = models.JSONField(default=list) + second_part = models.JSONField(default=list) + third_part = models.JSONField(default=list) + emoji = models.JSONField(default=list) + already_ran = models.JSONField(default=list) + welcome_reactions = models.JSONField(default=list) + inline_reactions = models.JSONField(default=list) + _mtg_data = models.JSONField(default=dict, blank=True, null=True) _mtg_corpus = models.TextField(null=True, blank=True) mtg_train = models.TextField(null=True, blank=True) diff --git a/bots/modules/ping.py b/bots/modules/ping.py index e6bc05b..f37ab8b 100644 --- a/bots/modules/ping.py +++ b/bots/modules/ping.py @@ -1,5 +1,4 @@ from django.db import models -from jsonfield import JSONField from telegram import Update from telegram.error import BadRequest from telegram.ext import Dispatcher, CallbackContext, CommandHandler @@ -11,7 +10,7 @@ from bots.models import TelegramBotModuleConfig class PingBotCategory(models.Model): chat_id = models.BigIntegerField(db_index=True) cat_name = models.CharField(max_length=64, db_index=True) - user_ids = JSONField(null=True) + user_ids = models.JSONField(null=True) def add_user(self, uid: int): user_ids = set(self.user_ids or []) diff --git a/config/utils.py b/config/utils.py index eff53b0..2abe97e 100644 --- a/config/utils.py +++ b/config/utils.py @@ -2,10 +2,10 @@ from urllib.parse import urlparse from django.forms import ModelForm from django.http import HttpRequest, HttpResponse, HttpResponseForbidden -from pyrogram import Chat as PyrogramChat -from pyrogram.api.types.chat import Chat as MTProtoChat -from pyrogram.api.types.user import User as MTProtoUser -from pyrogram.api.types.channel import Channel as MTProtoChannel +from pyrogram.types import Chat as PyrogramChat +from pyrogram.raw.types.chat import Chat as MTProtoChat +from pyrogram.raw.types.user import User as MTProtoUser +from pyrogram.raw.types.channel import Channel as MTProtoChannel def parse_mtproto_chat(client, chat): diff --git a/requirements.txt b/requirements.txt deleted file mode 100644 index c6c6ad4..0000000 --- a/requirements.txt +++ /dev/null @@ -1,91 +0,0 @@ -amqp==2.3.2 -APScheduler==3.6.3 -asgiref==3.2.3 -asn1crypto==0.24.0 -async-generator==1.10 -attrs==19.3.0 -autobahn==19.11.1 -Automat==0.8.0 -beautifulsoup4==4.7.1 -billiard==3.5.0.5 -bs4==0.0.1 -celery==4.2.1 -celery-once==2.0.0 -certifi==2018.11.29 -cffi==1.12.3 -chardet==3.0.4 -constantly==15.1.0 -cryptography==2.8 -daphne==2.4.0 -decorator==4.4.2 -Django==3.0rc1 -django-bootstrap4==1.0.1 -django-crispy-forms==1.8.1 -django-djconfig==0.9.0 -django-environ==0.4.5 -django-extensions==2.1.4 -django-jet==1.0.8 -django-jsoneditor==0.1.4 -django-redis-cache==2.1.0 -django-timezone-field==3.0 -django-yamlfield==1.0.3 -enum34==1.1.6 -feedparser==5.2.1 -future==0.17.1 -h2==3.1.1 -hiredis==1.0.1 -hpack==3.0.0 -humanize==0.5.1 -hyperframe==5.2.0 -hyperlink==19.0.0 -idna==2.8 -importlib-metadata==0.23 -incremental==17.5.0 -json-rpc==1.12.1 -jsonfield2==3.0.3 -jsonschema==3.2.0 -kombu==4.2.2.post1 -markovify==0.7.2 -more-itertools==7.2.0 -oauthlib==3.0.1 -packaging==19.2 -Pillow==5.4.1 -priority==1.3.0 -pyaes==1.6.1 -pyasn1==0.4.8 -pyasn1-modules==0.2.7 -pycparser==2.19 -PyHamcrest==1.9.0 -pyOpenSSL==19.1.0 -pyparsing==2.4.5 -Pyrogram==0.11.0 -pyrsistent==0.15.6 -PySocks==1.6.8 -pyTelegramBotAPI==3.6.6 -python-anticaptcha==0.3.1 -python-crontab==2.3.6 -python-dateutil==2.8.1 -python-telegram-bot==13.1 -python-twitter==3.5 -pytz==2018.9 -PyYAML==3.13 -redis==3.0.1 -requests==2.21.0 -requests-oauthlib==1.2.0 -sentry-sdk==0.6.9 -service-identity==18.1.0 -six==1.12.0 -soupsieve==1.7.3 -sqlparse==0.3.0 -TgCrypto==1.1.1 -tornado==6.0.3 -Twisted==19.10.0 -txaio==18.8.1 -tzlocal==2.1 -Unidecode==1.1.1 -urllib3==1.24.1 -vine==1.2.0 -vk-api==11.6.1 -Werkzeug==0.14.1 -zipp==0.6.0 -zope.interface==4.7.1