This commit is contained in:
bakatrouble 2021-03-11 23:43:54 +03:00
parent 22bce5b147
commit a86ddf61bf
35 changed files with 1129 additions and 801 deletions

39
Pipfile Normal file
View File

@ -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"

875
Pipfile.lock generated Normal file
View File

@ -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": {}
}

View File

@ -1,10 +1,12 @@
import os import os
from typing import List
from django.core.files.storage import default_storage from django.core.files.storage import default_storage
from djconfig import config from djconfig import config
from pyrogram import Client, MessageHandler, DeletedMessagesHandler, \ from pyrogram import Client
Message as PyrogramMessage, Messages as PyrogramMessages from pyrogram.handlers import MessageHandler, DeletedMessagesHandler
from pyrogram.api.errors import ChannelPrivate from pyrogram.types import Message as PyrogramMessage
from pyrogram.errors import ChannelPrivate
from pyrogram.session import Session from pyrogram.session import Session
from aggregator.models import AggregationSource, Message, Chat from aggregator.models import AggregationSource, Message, Chat
@ -30,8 +32,8 @@ def save_message(client, message: PyrogramMessage):
Message.from_obj(message, client) Message.from_obj(message, client)
def delete_messages(client, messages: PyrogramMessages): def delete_messages(client, messages: List[PyrogramMessage]):
for message in messages.messages: for message in messages:
Message.objects.filter(chat__chat_id=message.chat.id, message_id=message.message_id).update(deleted=True) Message.objects.filter(chat__chat_id=message.chat.id, message_id=message.message_id).update(deleted=True)

View File

@ -3,7 +3,7 @@ from django.core.exceptions import ValidationError
from django.core.files.storage import default_storage from django.core.files.storage import default_storage
from django.forms import ModelForm from django.forms import ModelForm
from djconfig.forms import ConfigForm from djconfig.forms import ConfigForm
from pyrogram.api.errors import ChannelPrivate from pyrogram.errors import ChannelPrivate
from config.utils import parse_mtproto_chat from config.utils import parse_mtproto_chat
from .client import get_client from .client import get_client

View File

@ -5,7 +5,7 @@ from tempfile import TemporaryDirectory
import pytz import pytz
from django.conf import settings from django.conf import settings
from django.db import models, transaction 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): class AggregationSource(models.Model):

View File

@ -1,4 +1,4 @@
from pyrogram import Error from pyrogram.errors import RPCError
from .client import get_client from .client import get_client
from .models import Chat, AggregationSource from .models import Chat, AggregationSource
@ -13,5 +13,5 @@ def chat_deleted(sender, instance: Chat, **kwargs):
with get_client() as client: with get_client() as client:
try: try:
client.leave_chat(instance.chat_id) client.leave_chat(instance.chat_id)
except Error: except RPCError:
pass pass

View File

@ -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')},
),
]

View File

@ -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')},
},
),
]

View File

@ -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,
},
),
]

View File

@ -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),
),
]

View File

@ -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),
),
]

View File

@ -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,
},
),
]

View File

@ -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,
},
),
]

View File

@ -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),
),
]

View File

@ -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'),
),
]

View File

@ -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')},
),
]

View File

@ -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={}),
),
]

View File

@ -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={}),
),
]

View File

@ -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={}),
),
]

View File

@ -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),
),
]

View File

@ -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),
),
]

View File

@ -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),
),
]

View File

@ -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',
),
]

View File

@ -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',
),
]

View File

@ -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')),
],
),
]

View File

@ -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',
),
]

View File

@ -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')},
},
),
]

View File

@ -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),
),
]

View File

@ -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'),
),
]

View File

@ -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),
),
]

View File

@ -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()),
],
),
]

View File

@ -8,7 +8,6 @@ import markovify
from django.db import models from django.db import models
from django.utils.timezone import localdate, now, make_aware, localtime from django.utils.timezone import localdate, now, make_aware, localtime
from jsoneditor.forms import JSONEditor from jsoneditor.forms import JSONEditor
from jsonfield import JSONField
from telegram import Update, Chat, User, InlineQueryResultArticle, InputTextMessageContent from telegram import Update, Chat, User, InlineQueryResultArticle, InputTextMessageContent
from telegram.error import BadRequest from telegram.error import BadRequest
from telegram.ext import Dispatcher, CallbackContext, MessageHandler, Filters, CommandHandler, InlineQueryHandler from telegram.ext import Dispatcher, CallbackContext, MessageHandler, Filters, CommandHandler, InlineQueryHandler
@ -18,14 +17,14 @@ from bots.models import TelegramBotModuleConfig
class CyberLinaBotModuleConfig(TelegramBotModuleConfig): class CyberLinaBotModuleConfig(TelegramBotModuleConfig):
first_part = JSONField(default='[]') first_part = models.JSONField(default=list)
second_part = JSONField(default='[]') second_part = models.JSONField(default=list)
third_part = JSONField(default='[]') third_part = models.JSONField(default=list)
emoji = JSONField(default='[]') emoji = models.JSONField(default=list)
already_ran = JSONField(default='[]') already_ran = models.JSONField(default=list)
welcome_reactions = JSONField(default='[]') welcome_reactions = models.JSONField(default=list)
inline_reactions = JSONField(default='[]') inline_reactions = models.JSONField(default=list)
_mtg_data = JSONField(default={}, blank=True, null=True) _mtg_data = models.JSONField(default=dict, blank=True, null=True)
_mtg_corpus = models.TextField(null=True, blank=True) _mtg_corpus = models.TextField(null=True, blank=True)
mtg_train = models.TextField(null=True, blank=True) mtg_train = models.TextField(null=True, blank=True)

View File

@ -1,5 +1,4 @@
from django.db import models from django.db import models
from jsonfield import JSONField
from telegram import Update from telegram import Update
from telegram.error import BadRequest from telegram.error import BadRequest
from telegram.ext import Dispatcher, CallbackContext, CommandHandler from telegram.ext import Dispatcher, CallbackContext, CommandHandler
@ -11,7 +10,7 @@ from bots.models import TelegramBotModuleConfig
class PingBotCategory(models.Model): class PingBotCategory(models.Model):
chat_id = models.BigIntegerField(db_index=True) chat_id = models.BigIntegerField(db_index=True)
cat_name = models.CharField(max_length=64, 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): def add_user(self, uid: int):
user_ids = set(self.user_ids or []) user_ids = set(self.user_ids or [])

View File

@ -2,10 +2,10 @@ from urllib.parse import urlparse
from django.forms import ModelForm from django.forms import ModelForm
from django.http import HttpRequest, HttpResponse, HttpResponseForbidden from django.http import HttpRequest, HttpResponse, HttpResponseForbidden
from pyrogram import Chat as PyrogramChat from pyrogram.types import Chat as PyrogramChat
from pyrogram.api.types.chat import Chat as MTProtoChat from pyrogram.raw.types.chat import Chat as MTProtoChat
from pyrogram.api.types.user import User as MTProtoUser from pyrogram.raw.types.user import User as MTProtoUser
from pyrogram.api.types.channel import Channel as MTProtoChannel from pyrogram.raw.types.channel import Channel as MTProtoChannel
def parse_mtproto_chat(client, chat): def parse_mtproto_chat(client, chat):

View File

@ -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