├── .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 |
4 |
5 |
18 |
19 |
20 |
21 |
28 |
29 |
30 |
35 |
36 |
37 |
38 |
39 |
40 |
41 |
42 |
43 |
44 |
45 |
46 |
47 |
48 |
49 |
50 |
51 |
52 |
53 |
--------------------------------------------------------------------------------
/.idea/inspectionProfiles/profiles_settings.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
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 |
--------------------------------------------------------------------------------