├── .idea ├── .gitignore ├── FastAPI.iml ├── inspectionProfiles │ ├── Project_Default.xml │ └── profiles_settings.xml ├── misc.xml └── modules.xml ├── Pipfile ├── Pipfile.lock ├── Procfile ├── README.md ├── __init__.py ├── console_tessting.py ├── main_base.py ├── main_engine.py ├── models.py └── start_base.py /.idea/.gitignore: -------------------------------------------------------------------------------- 1 | # Default ignored files 2 | /shelf/ 3 | /workspace.xml 4 | -------------------------------------------------------------------------------- /.idea/FastAPI.iml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | -------------------------------------------------------------------------------- /.idea/inspectionProfiles/Project_Default.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 53 | -------------------------------------------------------------------------------- /.idea/inspectionProfiles/profiles_settings.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 6 | -------------------------------------------------------------------------------- /.idea/misc.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /.idea/modules.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /Pipfile: -------------------------------------------------------------------------------- 1 | [[source]] 2 | url = "https://pypi.org/simple" 3 | verify_ssl = true 4 | name = "pypi" 5 | 6 | [packages] 7 | fastapi = "*" 8 | googletrans = "*" 9 | sqlalchemy = "*" 10 | uvicorn = "*" 11 | requests = "*" 12 | 13 | [dev-packages] 14 | 15 | [requires] 16 | python_version = "3.10" 17 | -------------------------------------------------------------------------------- /Pipfile.lock: -------------------------------------------------------------------------------- 1 | { 2 | "_meta": { 3 | "hash": { 4 | "sha256": "6b9bbd24b434d35f5a3f0e3e40e68b17dbdb532c0e3d73054eb34e3e9f0a1da8" 5 | }, 6 | "pipfile-spec": 6, 7 | "requires": { 8 | "python_version": "3.10" 9 | }, 10 | "sources": [ 11 | { 12 | "name": "pypi", 13 | "url": "https://pypi.org/simple", 14 | "verify_ssl": true 15 | } 16 | ] 17 | }, 18 | "default": { 19 | "anyio": { 20 | "hashes": [ 21 | "sha256:413adf95f93886e442aea925f3ee43baa5a765a64a0f52c6081894f9992fdd0b", 22 | "sha256:cb29b9c70620506a9a8f87a309591713446953302d7d995344d0d7c6c0c9a7be" 23 | ], 24 | "markers": "python_full_version >= '3.6.2'", 25 | "version": "==3.6.1" 26 | }, 27 | "asgiref": { 28 | "hashes": [ 29 | "sha256:1d2880b792ae8757289136f1db2b7b99100ce959b2aa57fd69dab783d05afac4", 30 | "sha256:4a29362a6acebe09bf1d6640db38c1dc3d9217c68e6f9f6204d72667fc19a424" 31 | ], 32 | "markers": "python_version >= '3.7'", 33 | "version": "==3.5.2" 34 | }, 35 | "certifi": { 36 | "hashes": [ 37 | "sha256:9c5705e395cd70084351dd8ad5c41e65655e08ce46f2ec9cf6c2c08390f71eb7", 38 | "sha256:f1d53542ee8cbedbe2118b5686372fb33c297fcd6379b050cca0ef13a597382a" 39 | ], 40 | "markers": "python_version >= '3.6'", 41 | "version": "==2022.5.18.1" 42 | }, 43 | "chardet": { 44 | "hashes": [ 45 | "sha256:84ab92ed1c4d4f16916e05906b6b75a6c0fb5db821cc65e70cbd64a3e2a5eaae", 46 | "sha256:fc323ffcaeaed0e0a02bf4d117757b98aed530d9ed4531e3e15460124c106691" 47 | ], 48 | "version": "==3.0.4" 49 | }, 50 | "charset-normalizer": { 51 | "hashes": [ 52 | "sha256:2857e29ff0d34db842cd7ca3230549d1a697f96ee6d3fb071cfa6c7393832597", 53 | "sha256:6881edbebdb17b39b4eaaa821b438bf6eddffb4468cf344f09f89def34a8b1df" 54 | ], 55 | "markers": "python_version >= '3'", 56 | "version": "==2.0.12" 57 | }, 58 | "click": { 59 | "hashes": [ 60 | "sha256:7682dc8afb30297001674575ea00d1814d808d6a36af415a82bd481d37ba7b8e", 61 | "sha256:bb4d8133cb15a609f44e8213d9b391b0809795062913b383c62be0ee95b1db48" 62 | ], 63 | "markers": "python_version >= '3.7'", 64 | "version": "==8.1.3" 65 | }, 66 | "colorama": { 67 | "hashes": [ 68 | "sha256:5941b2b48a20143d2267e95b1c2a7603ce057ee39fd88e7329b0c292aa16869b", 69 | "sha256:9f47eda37229f68eee03b24b9748937c7dc3868f906e8ba69fbcbdd3bc5dc3e2" 70 | ], 71 | "markers": "platform_system == 'Windows'", 72 | "version": "==0.4.4" 73 | }, 74 | "fastapi": { 75 | "hashes": [ 76 | "sha256:15fcabd5c78c266fa7ae7d8de9b384bfc2375ee0503463a6febbe3bab69d6f65", 77 | "sha256:3233d4a789ba018578658e2af1a4bb5e38bdd122ff722b313666a9b2c6786a83" 78 | ], 79 | "index": "pypi", 80 | "version": "==0.78.0" 81 | }, 82 | "googletrans": { 83 | "hashes": [ 84 | "sha256:44caeea42d91ff6ead5c2d49db2b88de66c45c2fe874c8ec03eb9b4ceb3a533d" 85 | ], 86 | "index": "pypi", 87 | "version": "==3.0.0" 88 | }, 89 | "greenlet": { 90 | "hashes": [ 91 | "sha256:0051c6f1f27cb756ffc0ffbac7d2cd48cb0362ac1736871399a739b2885134d3", 92 | "sha256:00e44c8afdbe5467e4f7b5851be223be68adb4272f44696ee71fe46b7036a711", 93 | "sha256:013d61294b6cd8fe3242932c1c5e36e5d1db2c8afb58606c5a67efce62c1f5fd", 94 | "sha256:049fe7579230e44daef03a259faa24511d10ebfa44f69411d99e6a184fe68073", 95 | "sha256:14d4f3cd4e8b524ae9b8aa567858beed70c392fdec26dbdb0a8a418392e71708", 96 | "sha256:166eac03e48784a6a6e0e5f041cfebb1ab400b394db188c48b3a84737f505b67", 97 | "sha256:17ff94e7a83aa8671a25bf5b59326ec26da379ace2ebc4411d690d80a7fbcf23", 98 | "sha256:1e12bdc622676ce47ae9abbf455c189e442afdde8818d9da983085df6312e7a1", 99 | "sha256:21915eb821a6b3d9d8eefdaf57d6c345b970ad722f856cd71739493ce003ad08", 100 | "sha256:288c6a76705dc54fba69fbcb59904ae4ad768b4c768839b8ca5fdadec6dd8cfd", 101 | "sha256:2bde6792f313f4e918caabc46532aa64aa27a0db05d75b20edfc5c6f46479de2", 102 | "sha256:32ca72bbc673adbcfecb935bb3fb1b74e663d10a4b241aaa2f5a75fe1d1f90aa", 103 | "sha256:356b3576ad078c89a6107caa9c50cc14e98e3a6c4874a37c3e0273e4baf33de8", 104 | "sha256:40b951f601af999a8bf2ce8c71e8aaa4e8c6f78ff8afae7b808aae2dc50d4c40", 105 | "sha256:572e1787d1460da79590bf44304abbc0a2da944ea64ec549188fa84d89bba7ab", 106 | "sha256:58df5c2a0e293bf665a51f8a100d3e9956febfbf1d9aaf8c0677cf70218910c6", 107 | "sha256:64e6175c2e53195278d7388c454e0b30997573f3f4bd63697f88d855f7a6a1fc", 108 | "sha256:7227b47e73dedaa513cdebb98469705ef0d66eb5a1250144468e9c3097d6b59b", 109 | "sha256:7418b6bfc7fe3331541b84bb2141c9baf1ec7132a7ecd9f375912eca810e714e", 110 | "sha256:7cbd7574ce8e138bda9df4efc6bf2ab8572c9aff640d8ecfece1b006b68da963", 111 | "sha256:7ff61ff178250f9bb3cd89752df0f1dd0e27316a8bd1465351652b1b4a4cdfd3", 112 | "sha256:833e1551925ed51e6b44c800e71e77dacd7e49181fdc9ac9a0bf3714d515785d", 113 | "sha256:8639cadfda96737427330a094476d4c7a56ac03de7265622fcf4cfe57c8ae18d", 114 | "sha256:8c5d5b35f789a030ebb95bff352f1d27a93d81069f2adb3182d99882e095cefe", 115 | "sha256:8c790abda465726cfb8bb08bd4ca9a5d0a7bd77c7ac1ca1b839ad823b948ea28", 116 | "sha256:8d2f1fb53a421b410751887eb4ff21386d119ef9cde3797bf5e7ed49fb51a3b3", 117 | "sha256:903bbd302a2378f984aef528f76d4c9b1748f318fe1294961c072bdc7f2ffa3e", 118 | "sha256:93f81b134a165cc17123626ab8da2e30c0455441d4ab5576eed73a64c025b25c", 119 | "sha256:95e69877983ea39b7303570fa6760f81a3eec23d0e3ab2021b7144b94d06202d", 120 | "sha256:9633b3034d3d901f0a46b7939f8c4d64427dfba6bbc5a36b1a67364cf148a1b0", 121 | "sha256:97e5306482182170ade15c4b0d8386ded995a07d7cc2ca8f27958d34d6736497", 122 | "sha256:9f3cba480d3deb69f6ee2c1825060177a22c7826431458c697df88e6aeb3caee", 123 | "sha256:aa5b467f15e78b82257319aebc78dd2915e4c1436c3c0d1ad6f53e47ba6e2713", 124 | "sha256:abb7a75ed8b968f3061327c433a0fbd17b729947b400747c334a9c29a9af6c58", 125 | "sha256:aec52725173bd3a7b56fe91bc56eccb26fbdff1386ef123abb63c84c5b43b63a", 126 | "sha256:b11548073a2213d950c3f671aa88e6f83cda6e2fb97a8b6317b1b5b33d850e06", 127 | "sha256:b1692f7d6bc45e3200844be0dba153612103db241691088626a33ff1f24a0d88", 128 | "sha256:b336501a05e13b616ef81ce329c0e09ac5ed8c732d9ba7e3e983fcc1a9e86965", 129 | "sha256:b8c008de9d0daba7b6666aa5bbfdc23dcd78cafc33997c9b7741ff6353bafb7f", 130 | "sha256:b92e29e58bef6d9cfd340c72b04d74c4b4e9f70c9fa7c78b674d1fec18896dc4", 131 | "sha256:be5f425ff1f5f4b3c1e33ad64ab994eed12fc284a6ea71c5243fd564502ecbe5", 132 | "sha256:dd0b1e9e891f69e7675ba5c92e28b90eaa045f6ab134ffe70b52e948aa175b3c", 133 | "sha256:e30f5ea4ae2346e62cedde8794a56858a67b878dd79f7df76a0767e356b1744a", 134 | "sha256:e6a36bb9474218c7a5b27ae476035497a6990e21d04c279884eb10d9b290f1b1", 135 | "sha256:e859fcb4cbe93504ea18008d1df98dee4f7766db66c435e4882ab35cf70cac43", 136 | "sha256:eb6ea6da4c787111adf40f697b4e58732ee0942b5d3bd8f435277643329ba627", 137 | "sha256:ec8c433b3ab0419100bd45b47c9c8551248a5aee30ca5e9d399a0b57ac04651b", 138 | "sha256:eff9d20417ff9dcb0d25e2defc2574d10b491bf2e693b4e491914738b7908168", 139 | "sha256:f0214eb2a23b85528310dad848ad2ac58e735612929c8072f6093f3585fd342d", 140 | "sha256:f276df9830dba7a333544bd41070e8175762a7ac20350786b322b714b0e654f5", 141 | "sha256:f3acda1924472472ddd60c29e5b9db0cec629fbe3c5c5accb74d6d6d14773478", 142 | "sha256:f70a9e237bb792c7cc7e44c531fd48f5897961701cdaa06cf22fc14965c496cf", 143 | "sha256:f9d29ca8a77117315101425ec7ec2a47a22ccf59f5593378fc4077ac5b754fce", 144 | "sha256:fa877ca7f6b48054f847b61d6fa7bed5cebb663ebc55e018fda12db09dcc664c", 145 | "sha256:fdcec0b8399108577ec290f55551d926d9a1fa6cad45882093a7a07ac5ec147b" 146 | ], 147 | "markers": "python_version >= '3' and platform_machine == 'aarch64' or (platform_machine == 'ppc64le' or (platform_machine == 'x86_64' or (platform_machine == 'amd64' or (platform_machine == 'AMD64' or (platform_machine == 'win32' or platform_machine == 'WIN32')))))", 148 | "version": "==1.1.2" 149 | }, 150 | "h11": { 151 | "hashes": [ 152 | "sha256:33d4bca7be0fa039f4e84d50ab00531047e53d6ee8ffbc83501ea602c169cae1", 153 | "sha256:4bc6d6a1238b7615b266ada57e0618568066f57dd6fa967d1290ec9309b2f2f1" 154 | ], 155 | "version": "==0.9.0" 156 | }, 157 | "h2": { 158 | "hashes": [ 159 | "sha256:61e0f6601fa709f35cdb730863b4e5ec7ad449792add80d1410d4174ed139af5", 160 | "sha256:875f41ebd6f2c44781259005b157faed1a5031df3ae5aa7bcb4628a6c0782f14" 161 | ], 162 | "version": "==3.2.0" 163 | }, 164 | "hpack": { 165 | "hashes": [ 166 | "sha256:0edd79eda27a53ba5be2dfabf3b15780928a0dff6eb0c60a3d6767720e970c89", 167 | "sha256:8eec9c1f4bfae3408a3f30500261f7e6a65912dc138526ea054f9ad98892e9d2" 168 | ], 169 | "version": "==3.0.0" 170 | }, 171 | "hstspreload": { 172 | "hashes": [ 173 | "sha256:d9cd749fbb6ff6ca1a8945c4a48cb6f33d2f6d066cb5f9752a8b64a134ed5260", 174 | "sha256:e8f03aac620d1947d66e311b706b46cc24a36792b346db7b483f148360843921" 175 | ], 176 | "markers": "python_version >= '3.6'", 177 | "version": "==2021.12.1" 178 | }, 179 | "httpcore": { 180 | "hashes": [ 181 | "sha256:9850fe97a166a794d7e920590d5ec49a05488884c9fc8b5dba8561effab0c2a0", 182 | "sha256:ecc5949310d9dae4de64648a4ce529f86df1f232ce23dcfefe737c24d21dfbe9" 183 | ], 184 | "markers": "python_version >= '3.6'", 185 | "version": "==0.9.1" 186 | }, 187 | "httpx": { 188 | "hashes": [ 189 | "sha256:32d930858eab677bc29a742aaa4f096de259f1c78c68a90ad11f5c3c04f08335", 190 | "sha256:3642bd13e90b80ba8a243a730275eb10a4c26ec96f5fc16b87e458d4ab21efae" 191 | ], 192 | "markers": "python_version >= '3.6'", 193 | "version": "==0.13.3" 194 | }, 195 | "hyperframe": { 196 | "hashes": [ 197 | "sha256:5187962cb16dcc078f23cb5a4b110098d546c3f41ff2d4038a9896893bbd0b40", 198 | "sha256:a9f5c17f2cc3c719b917c4f33ed1c61bd1f8dfac4b1bd23b7c80b3400971b41f" 199 | ], 200 | "version": "==5.2.0" 201 | }, 202 | "idna": { 203 | "hashes": [ 204 | "sha256:b307872f855b18632ce0c21c5e45be78c0ea7ae4c15c828c20788b26921eb3f6", 205 | "sha256:b97d804b1e9b523befed77c48dacec60e6dcb0b5391d57af6a65a312a90648c0" 206 | ], 207 | "markers": "python_version >= '3'", 208 | "version": "==2.10" 209 | }, 210 | "pydantic": { 211 | "hashes": [ 212 | "sha256:02eefd7087268b711a3ff4db528e9916ac9aa18616da7bca69c1871d0b7a091f", 213 | "sha256:059b6c1795170809103a1538255883e1983e5b831faea6558ef873d4955b4a74", 214 | "sha256:0bf07cab5b279859c253d26a9194a8906e6f4a210063b84b433cf90a569de0c1", 215 | "sha256:1542636a39c4892c4f4fa6270696902acb186a9aaeac6f6cf92ce6ae2e88564b", 216 | "sha256:177071dfc0df6248fd22b43036f936cfe2508077a72af0933d0c1fa269b18537", 217 | "sha256:18f3e912f9ad1bdec27fb06b8198a2ccc32f201e24174cec1b3424dda605a310", 218 | "sha256:1dd8fecbad028cd89d04a46688d2fcc14423e8a196d5b0a5c65105664901f810", 219 | "sha256:1ed987c3ff29fff7fd8c3ea3a3ea877ad310aae2ef9889a119e22d3f2db0691a", 220 | "sha256:447d5521575f18e18240906beadc58551e97ec98142266e521c34968c76c8761", 221 | "sha256:494f7c8537f0c02b740c229af4cb47c0d39840b829ecdcfc93d91dcbb0779892", 222 | "sha256:4988c0f13c42bfa9ddd2fe2f569c9d54646ce84adc5de84228cfe83396f3bd58", 223 | "sha256:4ce9ae9e91f46c344bec3b03d6ee9612802682c1551aaf627ad24045ce090761", 224 | "sha256:5d93d4e95eacd313d2c765ebe40d49ca9dd2ed90e5b37d0d421c597af830c195", 225 | "sha256:61b6760b08b7c395975d893e0b814a11cf011ebb24f7d869e7118f5a339a82e1", 226 | "sha256:72ccb318bf0c9ab97fc04c10c37683d9eea952ed526707fabf9ac5ae59b701fd", 227 | "sha256:79b485767c13788ee314669008d01f9ef3bc05db9ea3298f6a50d3ef596a154b", 228 | "sha256:7eb57ba90929bac0b6cc2af2373893d80ac559adda6933e562dcfb375029acee", 229 | "sha256:8bc541a405423ce0e51c19f637050acdbdf8feca34150e0d17f675e72d119580", 230 | "sha256:969dd06110cb780da01336b281f53e2e7eb3a482831df441fb65dd30403f4608", 231 | "sha256:985ceb5d0a86fcaa61e45781e567a59baa0da292d5ed2e490d612d0de5796918", 232 | "sha256:9bcf8b6e011be08fb729d110f3e22e654a50f8a826b0575c7196616780683380", 233 | "sha256:9ce157d979f742a915b75f792dbd6aa63b8eccaf46a1005ba03aa8a986bde34a", 234 | "sha256:9f659a5ee95c8baa2436d392267988fd0f43eb774e5eb8739252e5a7e9cf07e0", 235 | "sha256:a4a88dcd6ff8fd47c18b3a3709a89adb39a6373f4482e04c1b765045c7e282fd", 236 | "sha256:a955260d47f03df08acf45689bd163ed9df82c0e0124beb4251b1290fa7ae728", 237 | "sha256:a9af62e9b5b9bc67b2a195ebc2c2662fdf498a822d62f902bf27cccb52dbbf49", 238 | "sha256:ae72f8098acb368d877b210ebe02ba12585e77bd0db78ac04a1ee9b9f5dd2166", 239 | "sha256:b83ba3825bc91dfa989d4eed76865e71aea3a6ca1388b59fc801ee04c4d8d0d6", 240 | "sha256:c11951b404e08b01b151222a1cb1a9f0a860a8153ce8334149ab9199cd198131", 241 | "sha256:c320c64dd876e45254bdd350f0179da737463eea41c43bacbee9d8c9d1021f11", 242 | "sha256:c8098a724c2784bf03e8070993f6d46aa2eeca031f8d8a048dff277703e6e193", 243 | "sha256:d12f96b5b64bec3f43c8e82b4aab7599d0157f11c798c9f9c528a72b9e0b339a", 244 | "sha256:e565a785233c2d03724c4dc55464559639b1ba9ecf091288dd47ad9c629433bd", 245 | "sha256:f0f047e11febe5c3198ed346b507e1d010330d56ad615a7e0a89fae604065a0e", 246 | "sha256:fe4670cb32ea98ffbf5a1262f14c3e102cccd92b1869df3bb09538158ba90fe6" 247 | ], 248 | "markers": "python_full_version >= '3.6.1'", 249 | "version": "==1.9.1" 250 | }, 251 | "requests": { 252 | "hashes": [ 253 | "sha256:68d7c56fd5a8999887728ef304a6d12edc7be74f1cfa47714fc8b414525c9a61", 254 | "sha256:f22fa1e554c9ddfd16e6e41ac79759e17be9e492b3587efa038054674760e72d" 255 | ], 256 | "index": "pypi", 257 | "version": "==2.27.1" 258 | }, 259 | "rfc3986": { 260 | "hashes": [ 261 | "sha256:270aaf10d87d0d4e095063c65bf3ddbc6ee3d0b226328ce21e036f946e421835", 262 | "sha256:a86d6e1f5b1dc238b218b012df0aa79409667bb209e58da56d0b94704e712a97" 263 | ], 264 | "version": "==1.5.0" 265 | }, 266 | "sniffio": { 267 | "hashes": [ 268 | "sha256:471b71698eac1c2112a40ce2752bb2f4a4814c22a54a3eed3676bc0f5ca9f663", 269 | "sha256:c4666eecec1d3f50960c6bdf61ab7bc350648da6c126e3cf6898d8cd4ddcd3de" 270 | ], 271 | "markers": "python_version >= '3.5'", 272 | "version": "==1.2.0" 273 | }, 274 | "sqlalchemy": { 275 | "hashes": [ 276 | "sha256:06ec11a5e6a4b6428167d3ce33b5bd455c020c867dabe3e6951fa98836e0741d", 277 | "sha256:0e7fd52e48e933771f177c2a1a484b06ea03774fc7741651ebdf19985a34037c", 278 | "sha256:139c50b9384e6d32a74fc4dcd0e9717f343ed38f95dbacf832c782c68e3862f3", 279 | "sha256:17417327b87a0f703c9a20180f75e953315207d048159aff51822052f3e33e69", 280 | "sha256:29a742c29fea12259f1d2a9ee2eb7fe4694a85d904a4ac66d15e01177b17ad7f", 281 | "sha256:2aac2a685feb9882d09f457f4e5586c885d578af4e97a2b759e91e8c457cbce5", 282 | "sha256:3197441772dc3b1c6419f13304402f2418a18d7fe78000aa5a026e7100836739", 283 | "sha256:3688f92c62db6c5df268e2264891078f17ecb91e3141b400f2e28d0f75796dea", 284 | "sha256:3862a069a24f354145e01a76c7c720c263d62405fe5bed038c46a7ce900f5dd6", 285 | "sha256:4c1d9fb3931e27d59166bb5c4dcc911400fee51082cfba66ceb19ac954ade068", 286 | "sha256:4e8706919829d455a9fa687c6bbd1b048e36fec3919a59f2d366247c2bfdbd9c", 287 | "sha256:50c8eaf44c3fed5ba6758d375de25f163e46137c39fda3a72b9ee1d1bb327dfc", 288 | "sha256:5e4e517ce72fad35cce364a01aff165f524449e9c959f1837dc71088afa2824c", 289 | "sha256:6629c79967a6c92e33fad811599adf9bc5cee6e504a1027bbf9cc1b6fb2d276d", 290 | "sha256:78363f400fbda80f866e8e91d37d36fe6313ff847ded08674e272873c1377ea5", 291 | "sha256:7a44683cf97744a405103ef8fdd31199e9d7fc41b4a67e9044523b29541662b0", 292 | "sha256:7e579d6e281cc937bdb59917017ab98e618502067e04efb1d24ac168925e1d2a", 293 | "sha256:7ee34c85cbda7779d66abac392c306ec78c13f5c73a1f01b8b767916d4895d23", 294 | "sha256:8b38e088659b30c2ca0af63e5d139fad1779a7925d75075a08717a21c406c0f6", 295 | "sha256:9785d6f962d2c925aeb06a7539ac9d16608877da6aeaaf341984b3693ae80a02", 296 | "sha256:a91d0668cada27352432f15b92ac3d43e34d8f30973fa8b86f5e9fddee928f3b", 297 | "sha256:a940c551cfbd2e1e646ceea2777944425f5c3edff914bc808fe734d9e66f8d71", 298 | "sha256:aaa0e90e527066409c2ea5676282cf4afb4a40bb9dce0f56c8ec2768bff22a6e", 299 | "sha256:b4c92823889cf9846b972ee6db30c0e3a92c0ddfc76c6060a6cda467aa5fb694", 300 | "sha256:b55932fd0e81b43f4aff397c8ad0b3c038f540af37930423ab8f47a20b117e4c", 301 | "sha256:c37885f83b59e248bebe2b35beabfbea398cb40960cdc6d3a76eac863d4e1938", 302 | "sha256:caca6acf3f90893d7712ae2c6616ecfeac3581b4cc677c928a330ce6fbad4319", 303 | "sha256:cffc67cdd07f0e109a1fc83e333972ae423ea5ad414585b63275b66b870ea62b", 304 | "sha256:d4c3b009c9220ae6e33f17b45f43fb46b9a1d281d76118405af13e26376f2e11", 305 | "sha256:d58f2d9d1a4b1459e8956a0153a4119da80f54ee5a9ea623cd568e99459a3ef1", 306 | "sha256:d6927c9e3965b194acf75c8e0fb270b4d54512db171f65faae15ef418721996e", 307 | "sha256:d9050b0c4a7f5538650c74aaba5c80cd64450e41c206f43ea6d194ae6d060ff9", 308 | "sha256:eec39a17bab3f69c44c9df4e0ed87c7306f2d2bf1eca3070af644927ec4199fa", 309 | "sha256:f9940528bf9c4df9e3c3872d23078b6b2da6431c19565637c09f1b88a427a684", 310 | "sha256:ffe487570f47536b96eff5ef2b84034a8ba4e19aab5ab7647e677d94a119ea55" 311 | ], 312 | "index": "pypi", 313 | "version": "==1.4.37" 314 | }, 315 | "starlette": { 316 | "hashes": [ 317 | "sha256:5a60c5c2d051f3a8eb546136aa0c9399773a689595e099e0877704d5888279bf", 318 | "sha256:c6d21096774ecb9639acad41b86b7706e52ba3bf1dc13ea4ed9ad593d47e24c7" 319 | ], 320 | "markers": "python_version >= '3.6'", 321 | "version": "==0.19.1" 322 | }, 323 | "typing-extensions": { 324 | "hashes": [ 325 | "sha256:6657594ee297170d19f67d55c05852a874e7eb634f4f753dbd667855e07c1708", 326 | "sha256:f1c24655a0da0d1b67f07e17a5e6b2a105894e6824b92096378bb3668ef02376" 327 | ], 328 | "markers": "python_version >= '3.7'", 329 | "version": "==4.2.0" 330 | }, 331 | "urllib3": { 332 | "hashes": [ 333 | "sha256:44ece4d53fb1706f667c9bd1c648f5469a2ec925fcf3a776667042d645472c14", 334 | "sha256:aabaf16477806a5e1dd19aa41f8c2b7950dd3c746362d7e3223dbe6de6ac448e" 335 | ], 336 | "markers": "python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3, 3.4' and python_version < '4'", 337 | "version": "==1.26.9" 338 | }, 339 | "uvicorn": { 340 | "hashes": [ 341 | "sha256:19e2a0e96c9ac5581c01eb1a79a7d2f72bb479691acd2b8921fce48ed5b961a6", 342 | "sha256:5180f9d059611747d841a4a4c4ab675edf54c8489e97f96d0583ee90ac3bfc23" 343 | ], 344 | "index": "pypi", 345 | "version": "==0.17.6" 346 | } 347 | }, 348 | "develop": {} 349 | } 350 | -------------------------------------------------------------------------------- /Procfile: -------------------------------------------------------------------------------- 1 | web: uvicorn main_engine:app 2 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # pip install pipenv 2 | # pipenv install googletrans 3 | # pipenv install fastapi 4 | # pipenv install sqlalchemy 5 | # pipenv install uvicorn 6 | # pipenv install requests 7 | 8 | # Procfile 9 | # web: uvicorn main:app 10 | 11 | # git init 12 | # git add -A 13 | # git commit -m "first commit" 14 | 15 | # heroku login 16 | # heroku create 17 | # heroku git:remote -a app_name 18 | # git push heroku master 19 | -------------------------------------------------------------------------------- /__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/azizbekrakhimjonov/FastAPI/aa1b0750caa0846be2c9c3a692a8607416b29d1f/__init__.py -------------------------------------------------------------------------------- /console_tessting.py: -------------------------------------------------------------------------------- 1 | # # from main_base import Functions 2 | # # 3 | # # post = Functions() 4 | # # a = post.send_back('new') 5 | # # print(a) 6 | # 7 | # from google_trans_new import google_translator 8 | # # # 안녕하세요 9 | # translator = google_translator() 10 | # translate_text = translator.translate('hello', lang_tgt='uz').text 11 | # print(translate_text) 12 | 13 | -------------------------------------------------------------------------------- /main_base.py: -------------------------------------------------------------------------------- 1 | from models import Words, Users2 2 | from start_base import Session 3 | from fastapi import HTTPException, status 4 | import requests as res 5 | 6 | class Functions: 7 | def __init__(self): 8 | self.request = Session() 9 | self.temp = 0 10 | 11 | def insert_data(self, txt): 12 | self.request.begin() 13 | word = Words(word=txt) 14 | self.request.add(word) 15 | self.request.commit() 16 | return 'success' 17 | 18 | def send_back(self, txt: str): 19 | lst = [] 20 | back = self.request.query(Words).all() 21 | for i in back: 22 | lst.append(i.word) 23 | for j in lst: 24 | if txt == j: 25 | self.temp += 1 26 | return j 27 | if self.temp < 1: 28 | try: 29 | rs = res.get(f"https://api.dictionaryapi.dev/api/v2/entries/en/{txt}") 30 | response = rs.json()[0]['meanings'][0]['definitions'][0]['definition'] 31 | self.insert_data(f"{txt}: {response}") 32 | return f"{txt}: {response}" 33 | except: 34 | raise HTTPException(status_code=status.HTTP_404_NOT_FOUND, detail=f"Translation with {txt} not found") 35 | 36 | def signup(self, name, surname, age: int): 37 | self.request.begin() 38 | add = Users2(name=name, surname=surname, age=age) 39 | self.request.add(add) 40 | self.request.commit() 41 | return "Now you are signed up successfully! Reload page and use limitless-pro translator" 42 | 43 | def authentication(self, name: str, surname: str, age: int): 44 | lst = [] 45 | query = self.request.query(Users2).all() 46 | for i in query: 47 | tup = (i.name, i.surname, i.age) 48 | lst.append(tup) 49 | check = (name, surname, age) 50 | if check in lst: 51 | raise HTTPException(status_code=status.HTTP_200_OK, detail=f"You are welcome {name}!") 52 | else: 53 | raise HTTPException(status_code=status.HTTP_401_UNAUTHORIZED, 54 | detail="Please sign up to use pro edition: type: http://127.0.0.1:8000/signup/") 55 | 56 | 57 | if __name__ == '__main__': 58 | pass 59 | # print(post.signup('ab', 'cd', 12)) 60 | # print(post.authentification('ba', 'b', 1)) 61 | # tries above ...| 62 | -------------------------------------------------------------------------------- /main_engine.py: -------------------------------------------------------------------------------- 1 | from fastapi import FastAPI, status, HTTPException 2 | from pydantic import BaseModel 3 | from main_base import Functions 4 | from models import start_tables 5 | 6 | app = FastAPI() 7 | temp = 0 8 | 9 | 10 | class Signup(BaseModel): 11 | name: str 12 | surname: str 13 | age: int 14 | 15 | 16 | class Post(BaseModel): 17 | word: str 18 | 19 | 20 | @app.get("/") 21 | def root(): 22 | return {"greeting": "Welcome User! Welcome to our translator-API"} 23 | 24 | 25 | @app.post("/trans/") 26 | def translate(post: Post): 27 | global temp 28 | trans_back = Functions() 29 | back = trans_back.send_back(post.word) 30 | print(back) 31 | temp += 1 32 | if temp > 7: 33 | raise HTTPException(status_code=status.HTTP_401_UNAUTHORIZED, 34 | detail="To continue please verify Privacy: please click here> http://127.0.0.1:8000/login/") 35 | temp += 1 36 | return {f"Request: {post.word}": f"Translate: {back}"} 37 | 38 | 39 | @app.post("/login") 40 | def verify(post: Signup): 41 | fun = Functions() 42 | fun.authentication(post.name, post.surname, post.age) 43 | 44 | 45 | @app.post("/signup/") 46 | def register(post: Signup): 47 | reg = Functions() 48 | back = reg.signup(post.name, post.surname, post.age) 49 | return {"feedback": back} 50 | 51 | 52 | if __name__ == '__main__': 53 | start_tables() 54 | -------------------------------------------------------------------------------- /models.py: -------------------------------------------------------------------------------- 1 | from start_base import Base, engine 2 | from sqlalchemy import Column, String, Integer 3 | 4 | 5 | class Words(Base): 6 | __tablename__ = "WordTable" 7 | 8 | id = Column(Integer, primary_key=True) 9 | word = Column(String, nullable=False) 10 | 11 | 12 | class Users2(Base): 13 | __tablename__ = "User_data" 14 | 15 | id = Column(Integer, primary_key=True) 16 | name = Column(String, nullable=False) 17 | surname = Column(String, nullable=False) 18 | age = Column(Integer, nullable=False) 19 | 20 | 21 | def start_tables(): 22 | Base.metadata.create_all(engine) 23 | 24 | 25 | if __name__ == '__main__': 26 | Base.metadata.create_all(engine) 27 | -------------------------------------------------------------------------------- /start_base.py: -------------------------------------------------------------------------------- 1 | from sqlalchemy.orm import sessionmaker 2 | from sqlalchemy.ext.declarative import declarative_base 3 | from sqlalchemy import create_engine 4 | 5 | BASE = "postgresql://postgres:postgresql@localhost/FastAPI" 6 | engine = create_engine(BASE) 7 | Session = sessionmaker(autoflush=False, autocommit=True, bind=engine) 8 | Base = declarative_base() 9 | --------------------------------------------------------------------------------