mirror of
https://github.com/Mayuri-Chan/pyrofork.git
synced 2025-12-29 20:14:51 +00:00
Compare commits
904 commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
6bbff46417 | ||
|
|
2c32c152cb | ||
|
|
97db9130bb | ||
|
|
47a3b6179d | ||
|
|
2f2d515575 | ||
|
|
e9c40679d2 | ||
|
|
b43e857ed2 | ||
|
|
72b043b743 | ||
|
|
ac8e8fef4d | ||
|
|
0876ac31bd | ||
|
|
4f4988e808 | ||
|
|
94c474a646 | ||
|
|
66753e44f2 | ||
|
|
d35abe89c4 | ||
|
|
77f50c6a82 | ||
|
|
c15a59e998 | ||
|
|
945dcfca56 | ||
|
|
12cf466b23 | ||
|
|
8c6bad6aa4 | ||
|
|
dddb0d75e7 | ||
|
|
f0cc3afe5d | ||
|
|
7105b131dc | ||
|
|
4afd74d26e | ||
|
|
73027fecf7 | ||
|
|
7db5e1423f | ||
|
|
802c394f91 | ||
|
|
4570b3b5a9 | ||
|
|
fa9781d62c | ||
|
|
9a772a8c8a | ||
|
|
cb38d6a02b | ||
|
|
cf6141feb4 | ||
|
|
8acc457458 | ||
|
|
413556a3f2 | ||
|
|
4a109b3dc2 | ||
|
|
46e755f297 | ||
|
|
c8b22bb5e7 | ||
|
|
9b670a78b3 | ||
|
|
621c690e55 | ||
|
|
07bdefb017 | ||
|
|
9d795911b4 | ||
|
|
cb19b742ad | ||
|
|
1ba1a051c4 | ||
|
|
6151813555 | ||
|
|
cc4eb21b84 | ||
|
|
12d9297c02 | ||
|
|
52abec6e01 | ||
|
|
fd4eb09f7a | ||
|
|
dbcbadc400 | ||
|
|
b65279046e | ||
|
|
9ff40dc90b | ||
|
|
6f616ebed8 | ||
|
|
e33d0bde65 | ||
|
|
e5b5ef5072 | ||
|
|
a1e3f0f5db | ||
|
|
b6c615df7a | ||
|
|
a2f3a6a27b | ||
|
|
bd5603a6a7 | ||
|
|
1ed7add4dd | ||
|
|
068181682e | ||
|
|
c0dcac1fde | ||
|
|
ffec107a2c | ||
|
|
390786d92c | ||
|
|
a9c4ef4c2e | ||
|
|
78467e30a2 | ||
|
|
3d343a49ff | ||
|
|
83f3f52681 | ||
|
|
8880a92483 | ||
|
|
71c0a1176a | ||
|
|
ddf90f26cf | ||
|
|
907f03197a | ||
|
|
eb2b854ea6 | ||
|
|
7d10a6fb9c | ||
|
|
315f61d1ed | ||
|
|
f6599d8ef4 | ||
|
|
47b054c996 | ||
|
|
2a84c33607 | ||
|
|
6c07a1b165 | ||
|
|
2c3fb1caa6 | ||
|
|
ce74587e4f | ||
|
|
910e7fe730 | ||
|
|
7f5547a6a8 | ||
|
|
04c25b760f | ||
|
|
1b6d86ea77 | ||
|
|
5e35c47b61 | ||
|
|
99e6005cf1 | ||
|
|
57feed8b45 | ||
|
|
d749f50140 | ||
|
|
2992b6cc2f | ||
|
|
ac7ad7d3bc | ||
|
|
40cd7badd5 | ||
|
|
c0c76342d5 | ||
|
|
37d0e5ae72 | ||
|
|
52c13cdd48 | ||
|
|
e2e4f13946 | ||
|
|
beb5b5138b | ||
|
|
95e97b11f6 | ||
|
|
548f404d67 | ||
|
|
4df4478a80 | ||
|
|
4a8e73fc97 | ||
|
|
3a632d4590 | ||
|
|
8655deb92c | ||
|
|
b6fdbb0a07 | ||
|
|
aac5425334 | ||
|
|
3e24f006e0 | ||
|
|
f5296145cd | ||
|
|
24d3ea0e48 | ||
|
|
70fc7d9eff | ||
|
|
8c47410bba | ||
|
|
c427601210 | ||
|
|
aa1757676c | ||
|
|
c4166957d3 | ||
|
|
389a135883 | ||
|
|
6b28d305c0 | ||
|
|
7ae98099db | ||
|
|
96917949a9 | ||
|
|
757b081eeb | ||
|
|
8074557922 | ||
|
|
7562d04596 | ||
|
|
149dd4a708 | ||
|
|
4926eda4c5 | ||
|
|
c4b587b493 | ||
|
|
1108c52f53 | ||
|
|
fc84041397 | ||
|
|
71c39b8e6f | ||
|
|
bec31032cc | ||
|
|
5c9470fd4f | ||
|
|
13681302a0 | ||
|
|
c31d41e3d3 | ||
|
|
8528eea303 | ||
|
|
39cd79794e | ||
|
|
ea8ff2806f | ||
|
|
e33a9d95df | ||
|
|
ee3e9002fc | ||
|
|
4e200e2a5d | ||
|
|
ecf469973e | ||
|
|
5e72850eee | ||
|
|
ad0aed4cf3 | ||
|
|
5c1c72f068 | ||
|
|
7662cc164f | ||
|
|
2923328bbb | ||
|
|
e9eaa48650 | ||
|
|
03c2f5ff8c | ||
|
|
3e504edcc1 | ||
|
|
8f9797f57c | ||
|
|
361acdbfd7 | ||
|
|
4a50a9183d | ||
|
|
0f65486aba | ||
|
|
fabe0464fa | ||
|
|
0b220def26 | ||
|
|
3e36412e68 | ||
|
|
3180267107 | ||
|
|
377fda434b | ||
|
|
ca5c406a00 | ||
|
|
276bc0affd | ||
|
|
60533eb92c | ||
|
|
885a832aa3 | ||
|
|
a653065774 | ||
|
|
5676006a10 | ||
|
|
71f1147b65 | ||
|
|
8db18a7734 | ||
|
|
d82a3fb1f7 | ||
|
|
2e0ec55dd3 | ||
|
|
f767fd3e3a | ||
|
|
b12b4a62f4 | ||
|
|
7cda52ac39 | ||
|
|
7404c46d7d | ||
|
|
14fb99cf77 | ||
|
|
9e101ef4d9 | ||
|
|
a04c91db31 | ||
|
|
8ceec293ba | ||
|
|
6c538f026d | ||
|
|
1ddc2d268b | ||
|
|
5c93020bbe | ||
|
|
1955de7a20 | ||
|
|
2bb299c163 | ||
|
|
8e7e5fb9ff | ||
|
|
e67a016828 | ||
|
|
aaf9c0cd3d | ||
|
|
5187bae266 | ||
|
|
ecc15f67a4 | ||
|
|
56e9173579 | ||
|
|
945ff8b642 | ||
|
|
21a3045890 | ||
|
|
481817649b | ||
|
|
bd46ff3977 | ||
|
|
b21db6f931 | ||
|
|
6dcb6bfa67 | ||
|
|
252882851e | ||
|
|
ae3bc516fb | ||
|
|
5b79294276 | ||
|
|
08af7a1b66 | ||
|
|
d3c945f6b6 | ||
|
|
f8103a2890 | ||
|
|
f6f003d25a | ||
|
|
bba87d6e52 | ||
|
|
c9bbeec525 | ||
|
|
dd9ae86d8b | ||
|
|
d7018d8ed1 | ||
|
|
efc0272186 | ||
|
|
03226965ab | ||
|
|
45b47af9b2 | ||
|
|
ab8f854385 | ||
|
|
6f5bd1392b | ||
|
|
1bcf2f7be6 | ||
|
|
efce392266 | ||
|
|
5dda91d3b0 | ||
|
|
0c23296be5 | ||
|
|
4e909508e5 | ||
|
|
4ced5fbd8b | ||
|
|
52f1b97c84 | ||
|
|
680918eed7 | ||
|
|
3426ad59a2 | ||
|
|
cf67f9534c | ||
|
|
b437bc1c46 | ||
|
|
307b700df3 | ||
|
|
91e7506a6a | ||
|
|
591cd3ac86 | ||
|
|
7726e22161 | ||
|
|
072cc0cead | ||
|
|
4bcc690083 | ||
|
|
db562461ad | ||
|
|
261490f63b | ||
|
|
e5ae90c335 | ||
|
|
f990b1e7f9 | ||
|
|
2130f089d6 | ||
|
|
5086c9ccc3 | ||
|
|
6e66a7d4b2 | ||
|
|
a6046806b8 | ||
|
|
6e6a689953 | ||
|
|
f30aa0077a | ||
|
|
0a6cc8b5a4 | ||
|
|
f23f450c62 | ||
|
|
d4649275e9 | ||
|
|
bb96ca8597 | ||
|
|
e4968df4c9 | ||
|
|
b152bd9c84 | ||
|
|
4e823b153e | ||
|
|
95eba2ce77 | ||
|
|
a6b69228e8 | ||
|
|
faef0b0699 | ||
|
|
266fc738b6 | ||
|
|
d594fe58cb | ||
|
|
923ad51dd7 | ||
|
|
c3df58b4c7 | ||
|
|
2d83118f0f | ||
|
|
3ee16dac4e | ||
|
|
45e2872fab | ||
|
|
74376f8da5 | ||
|
|
44d4c0ff55 | ||
|
|
65190eb195 | ||
|
|
a403d83f7e | ||
|
|
6543fa11b6 | ||
|
|
57155cbdfa | ||
|
|
caea59cc17 | ||
|
|
63db641f59 | ||
|
|
f7e1f214c6 | ||
|
|
c2cd506be9 | ||
|
|
01e200e8ce | ||
|
|
4e2d553f35 | ||
|
|
ee8f11e2a0 | ||
|
|
930da9b858 | ||
|
|
d70927e5a2 | ||
|
|
f07d6563e3 | ||
|
|
76deb77f1c | ||
|
|
02eed79861 | ||
|
|
2faae08064 | ||
|
|
e5327d2216 | ||
|
|
11836faab7 | ||
|
|
2a70654537 | ||
|
|
d062b6795f | ||
|
|
053232b15a | ||
|
|
b412622bc7 | ||
|
|
74699d8bdf | ||
|
|
489337d5d0 | ||
|
|
d9c6286044 | ||
|
|
755d23028b | ||
|
|
430cc9f534 | ||
|
|
2ebfb80761 | ||
|
|
37e39bd6ce | ||
|
|
7a063e4a72 | ||
|
|
8e95ffcd6c | ||
|
|
8d8768cce4 | ||
|
|
efe3d90718 | ||
|
|
d3ffd68690 | ||
|
|
1d0ad21328 | ||
|
|
375d165a9c | ||
|
|
a598ab6144 | ||
|
|
9697a7f3cd | ||
|
|
ecfa97f115 | ||
|
|
3061115d57 | ||
|
|
2317643727 | ||
|
|
56efb88047 | ||
|
|
8854710399 | ||
|
|
889c32ca2b | ||
|
|
a138170e1e | ||
|
|
945290692e | ||
|
|
cbd632c600 | ||
|
|
b6d9e2c782 | ||
|
|
4112298666 | ||
|
|
90dc694588 | ||
|
|
4ac0fcc35f | ||
|
|
22bc0140e9 | ||
|
|
d0a70e2929 | ||
|
|
ce382c2f11 | ||
|
|
b4d2d30fca | ||
|
|
ccfac93e84 | ||
|
|
74f5a3fe29 | ||
|
|
daf6f91600 | ||
|
|
e0e5bdb2cd | ||
|
|
f030f00e9d | ||
|
|
1abd0673b7 | ||
|
|
69179879fc | ||
|
|
569c515732 | ||
|
|
ee8c19d3f4 | ||
|
|
b081928452 | ||
|
|
e97f441a41 | ||
|
|
780ea9fd64 | ||
|
|
56621a6f4d | ||
|
|
c880277a4e | ||
|
|
280248f243 | ||
|
|
2e4b2d3348 | ||
|
|
5a9c11934a | ||
|
|
9669d62562 | ||
|
|
7c81723649 | ||
|
|
9dbd784e7c | ||
|
|
d906970d99 | ||
|
|
f1e2b493b6 | ||
|
|
bed95d6ec2 | ||
|
|
116a353477 | ||
|
|
87e0314f4a | ||
|
|
73da5c1aef | ||
|
|
9510ff9fdb | ||
|
|
9785e96ac4 | ||
|
|
4c99132f3b | ||
|
|
2abb3543ce | ||
|
|
3120fb2340 | ||
|
|
30f5ae2994 | ||
|
|
defda31c28 | ||
|
|
4bbbd5c460 | ||
|
|
6ba25aa4f5 | ||
|
|
18e81882c3 | ||
|
|
c0ee103efe | ||
|
|
a55b56d611 | ||
|
|
5316a16a83 | ||
|
|
869965acf3 | ||
|
|
561d3d3def | ||
|
|
d46e8f1da4 | ||
|
|
b0f449a0d6 | ||
|
|
e999da461d | ||
|
|
61398bc5a4 | ||
|
|
48e8d0c4a1 | ||
|
|
9d0c11caf5 | ||
|
|
fb2d49efbd | ||
|
|
8584ea3599 | ||
|
|
c394a3ea3a | ||
|
|
f37c5c9f2f | ||
|
|
58f0031ead | ||
|
|
4795bdbd5b | ||
|
|
ff69bbaf3b | ||
|
|
30dad015ae | ||
|
|
918a55de3b | ||
|
|
de5d2e747b | ||
|
|
5130e0a2e5 | ||
|
|
32175f33c0 | ||
|
|
50a3919ed7 | ||
|
|
344f835441 | ||
|
|
43809a91b1 | ||
|
|
48cf8bcb23 | ||
|
|
83543da3e6 | ||
|
|
c8d2c6a152 | ||
|
|
0a844bd5ed | ||
|
|
86831843d9 | ||
|
|
08f9bd81f5 | ||
|
|
57175dedba | ||
|
|
47ede16039 | ||
|
|
a95517fa19 | ||
|
|
6bad69f04f | ||
|
|
b6a8ab87c7 | ||
|
|
6f8dde7ad0 | ||
|
|
240d3bfde5 | ||
|
|
b5a00aa539 | ||
|
|
d2dd55864c | ||
|
|
2e263190a2 | ||
|
|
4ae45da1ec | ||
|
|
12239964ec | ||
|
|
2891c15fa5 | ||
|
|
2284a2c852 | ||
|
|
8902f8be9e | ||
|
|
ced07dd421 | ||
|
|
adf5ad50d1 | ||
|
|
2fe3eeb96b | ||
|
|
3a41a51359 | ||
|
|
bb4ea00d4e | ||
|
|
3232a3f139 | ||
|
|
0387a09079 | ||
|
|
4d6fb409b8 | ||
|
|
d501b66f93 | ||
|
|
8fa49a9c43 | ||
|
|
ca6870502e | ||
|
|
8c51a192af | ||
|
|
1e44386a7c | ||
|
|
f1bea2c32f | ||
|
|
c4ec16b742 | ||
|
|
d863655769 | ||
|
|
7a9ffa2506 | ||
|
|
b8b014129e | ||
|
|
bb29cc86bc | ||
|
|
955b261101 | ||
|
|
7c0481d2f0 | ||
|
|
30272728be | ||
|
|
e823160c61 | ||
|
|
d4b904675a | ||
|
|
caf61d8dab | ||
|
|
d162ee1542 | ||
|
|
ed6dad7426 | ||
|
|
ca6bf75910 | ||
|
|
b4c6f66244 | ||
|
|
75d6e79917 | ||
|
|
fa7b7f3c58 | ||
|
|
454c2614e2 | ||
|
|
ad4dc01c8d | ||
|
|
1cbcffded1 | ||
|
|
7328ccdf7c | ||
|
|
59461adc55 | ||
|
|
fac571aff9 | ||
|
|
ebbd5dd0bb | ||
|
|
b97407edab | ||
|
|
a50c72b375 | ||
|
|
c8768f65cf | ||
|
|
a592c984fa | ||
|
|
4aa4d1a74a | ||
|
|
c4362ad535 | ||
|
|
4cec859126 | ||
|
|
8b52f1f71d | ||
|
|
3db7bd1dae | ||
|
|
ef002e0416 | ||
|
|
ed6403db3c | ||
|
|
40b679a878 | ||
|
|
f84e1f6a5e | ||
|
|
f03f5ffd79 | ||
|
|
b7dcc5b298 | ||
|
|
8ea36645c0 | ||
|
|
e70556f00f | ||
|
|
f2ebe880dc | ||
|
|
d2ee1653a7 | ||
|
|
f684ce9563 | ||
|
|
45a7764153 | ||
|
|
e414aa2812 | ||
|
|
21de92d909 | ||
|
|
622616b38d | ||
|
|
eae031f79a | ||
|
|
51b006cc69 | ||
|
|
2d28db8071 | ||
|
|
4703089335 | ||
|
|
8475b017e8 | ||
|
|
05386b5f56 | ||
|
|
9a50847108 | ||
|
|
7fed4491b5 | ||
|
|
2681025b0b | ||
|
|
be47594cf9 | ||
|
|
849be50c95 | ||
|
|
af9e137b28 | ||
|
|
fd0a23a528 | ||
|
|
d1e20a070f | ||
|
|
a1e872962c | ||
|
|
756a42c595 | ||
|
|
2d090a6db5 | ||
|
|
c8a8680fe9 | ||
|
|
d624f386c1 | ||
|
|
f0a4bce5a5 | ||
|
|
fa0376c458 | ||
|
|
8ca9045ebc | ||
|
|
1f5a4f1363 | ||
|
|
52b23f2a19 | ||
|
|
cc91ee9f44 | ||
|
|
7ddd53f61b | ||
|
|
48fed9347a | ||
|
|
05c2770ca7 | ||
|
|
ac6f1ad669 | ||
|
|
85892c23d0 | ||
|
|
f326333acf | ||
|
|
8f81e467d9 | ||
|
|
2714ddd6c0 | ||
|
|
81b2fe4461 | ||
|
|
a6f4443aa9 | ||
|
|
0e1f7ad712 | ||
|
|
ea66135a66 | ||
|
|
ed19fee93d | ||
|
|
5de44baff4 | ||
|
|
3f34c96175 | ||
|
|
92e4ca845b | ||
|
|
3b5db0b988 | ||
|
|
9bdc824a61 | ||
|
|
1f9d17fd19 | ||
|
|
0692acbc60 | ||
|
|
1279bfc5fd | ||
|
|
dc4d6ce9b5 | ||
|
|
6140e2a8b8 | ||
|
|
4c9a4f972e | ||
|
|
43fb830382 | ||
|
|
b49c5f7512 | ||
|
|
dfc027c2ff | ||
|
|
dff672ec44 | ||
|
|
7b107a69ef | ||
|
|
517f2256b6 | ||
|
|
0fcce527bc | ||
|
|
282f512fed | ||
|
|
8d9f6132f5 | ||
|
|
01f5a9d1ca | ||
|
|
484b58b258 | ||
|
|
e74e54cef0 | ||
|
|
18289f96b5 | ||
|
|
a6a5f179cc | ||
|
|
dee698fc45 | ||
|
|
3049e6e63b | ||
|
|
ec19f4f6bb | ||
|
|
26654b1945 | ||
|
|
1e7c906342 | ||
|
|
cb23b6d17b | ||
|
|
29ec92c92f | ||
|
|
8193d87e2c | ||
|
|
ce46d49ec2 | ||
|
|
134559ea18 | ||
|
|
f25c239c7d | ||
|
|
13d8b10deb | ||
|
|
665965b92a | ||
|
|
9e7166480a | ||
|
|
0bf1d33fa2 | ||
|
|
1b3f0933c7 | ||
|
|
a88ae52938 | ||
|
|
68ca84599f | ||
|
|
bf94b9e21e | ||
|
|
f53eb2b386 | ||
|
|
9299f02bb9 | ||
|
|
3a41a720fd | ||
|
|
48f313b412 | ||
|
|
4c11bcdc7f | ||
|
|
82a9222cd2 | ||
|
|
f700094fe1 | ||
|
|
02b2cbdca2 | ||
|
|
b1358c334d | ||
|
|
73922b95a7 | ||
|
|
53501db0ff | ||
|
|
4b8fceecdc | ||
|
|
a7859ba790 | ||
|
|
bc17bb6218 | ||
|
|
6e97b58566 | ||
|
|
08f0214252 | ||
|
|
e327d2ecb9 | ||
|
|
b289cd5842 | ||
|
|
f17c0a3354 | ||
|
|
834788db94 | ||
|
|
6ee289d787 | ||
|
|
4fc27cbae1 | ||
|
|
c13f3b766e | ||
|
|
a95c1b6ac1 | ||
|
|
f2b6182584 | ||
|
|
41e13454e7 | ||
|
|
1e93808ed0 | ||
|
|
c3a67b7665 | ||
|
|
f1b4d1ca49 | ||
|
|
48c7a5e2f9 | ||
|
|
e9f3677908 | ||
|
|
038462a232 | ||
|
|
437a141f88 | ||
|
|
5ea55040f8 | ||
|
|
348d6173cd | ||
|
|
621a07bb8c | ||
|
|
a5e3e6802a | ||
|
|
b41e2c5b9e | ||
|
|
270fa320ac | ||
|
|
1340d4f729 | ||
|
|
3fee62dd1d | ||
|
|
b8ccff40e2 | ||
|
|
0117429dc9 | ||
|
|
db9fef481f | ||
|
|
b524fb6049 | ||
|
|
29ae15e660 | ||
|
|
943a4d86a1 | ||
|
|
c8b2a3adca | ||
|
|
cd0473c6af | ||
|
|
094d069b28 | ||
|
|
b06da1ecdc | ||
|
|
53562e4354 | ||
|
|
835fb00e38 | ||
|
|
08283fe907 | ||
|
|
8a910de8eb | ||
|
|
d2059ce948 | ||
|
|
ad501858ce | ||
|
|
16390c3eff | ||
|
|
992835b5a8 | ||
|
|
fb985d4d30 | ||
|
|
c0779b52ff | ||
|
|
44415e7013 | ||
|
|
bcc88f5b4c | ||
|
|
0b5cc55768 | ||
|
|
454f155845 | ||
|
|
bb9abd880e | ||
|
|
0c93081af9 | ||
|
|
4c0b3e4090 | ||
|
|
2bd393fe0d | ||
|
|
b85382706d | ||
|
|
838480e5b8 | ||
|
|
1f288c2a0d | ||
|
|
2543c0f9f4 | ||
|
|
726a622892 | ||
|
|
1329d2ec87 | ||
|
|
1dcbc6bf59 | ||
|
|
3b6999c5e2 | ||
|
|
83f39f6ac3 | ||
|
|
57f7a23dd5 | ||
|
|
1bb0c85d31 | ||
|
|
2a260d0d18 | ||
|
|
e0039f2c69 | ||
|
|
1906bc2939 | ||
|
|
9ee3afb819 | ||
|
|
4597757188 | ||
|
|
df41e8d791 | ||
|
|
3d9399ebbb | ||
|
|
b36a46efc0 | ||
|
|
d6e0a4f520 | ||
|
|
16bc4a4178 | ||
|
|
7a7225b08f | ||
|
|
b7cf8cd3fd | ||
|
|
ddc91f6086 | ||
|
|
f03149ce4e | ||
|
|
7e5e767402 | ||
|
|
534ee2efab | ||
|
|
5d28478c09 | ||
|
|
79e6db333f | ||
|
|
45cabf3c09 | ||
|
|
f31271734f | ||
|
|
48b2e4e480 | ||
|
|
c1598942ca | ||
|
|
b88fa8a673 | ||
|
|
83976b6a72 | ||
|
|
b4cb8ff17c | ||
|
|
0560949ed8 | ||
|
|
c90a35a4c1 | ||
|
|
c949de63c5 | ||
|
|
33d9fef0fb | ||
|
|
97d5354ad2 | ||
|
|
9da7f5137e | ||
|
|
dda230d9de | ||
|
|
e7060d650a | ||
|
|
8e5e317ed1 | ||
|
|
0943ac72bd | ||
|
|
35371ed091 | ||
|
|
9c3980ab6e | ||
|
|
7ef785e5aa | ||
|
|
af8c490c29 | ||
|
|
8aee144313 | ||
|
|
e3e84d91e8 | ||
|
|
1903ddbfbd | ||
|
|
3e3a861b50 | ||
|
|
06da19f109 | ||
|
|
6613329d1c | ||
|
|
dd92d5061f | ||
|
|
b092130f65 | ||
|
|
b6751fa86c | ||
|
|
c7985b5131 | ||
|
|
4162ac41e8 | ||
|
|
b76e60f671 | ||
|
|
1292805045 | ||
|
|
542bd41608 | ||
|
|
fdd08df65d | ||
|
|
9dec95ef69 | ||
|
|
3445ff978e | ||
|
|
7126383257 | ||
|
|
b33bbb7546 | ||
|
|
f88c43387f | ||
|
|
4c2469191c | ||
|
|
c3e84dcd68 | ||
|
|
5c358e0c92 | ||
|
|
7cb00fa10d | ||
|
|
0124d5598b | ||
|
|
7ff693eefc | ||
|
|
0480b3870b | ||
|
|
b8579d7658 | ||
|
|
06ab804ba1 | ||
|
|
60d96abd15 | ||
|
|
b100bf1248 | ||
|
|
570195a773 | ||
|
|
dd57ebf77e | ||
|
|
4ccd25e62d | ||
|
|
9e3103b6f6 | ||
|
|
2900a03dc5 | ||
|
|
7fca0e87bb | ||
|
|
3682733d8d | ||
|
|
71623e1080 | ||
|
|
e27ae420dc | ||
|
|
db576b8a2f | ||
|
|
733defe650 | ||
|
|
e4964e8470 | ||
|
|
207d0929d8 | ||
|
|
51dc19d400 | ||
|
|
e83e565a29 | ||
|
|
c11dc29a0d | ||
|
|
1936e1e6bd | ||
|
|
d93285b7ba | ||
|
|
a37ca092d5 | ||
|
|
bed1da1ccc | ||
|
|
57e03f5f9d | ||
|
|
f9bb4305fe | ||
|
|
0f85a0ba68 | ||
|
|
70b3c5431f | ||
|
|
beaf8f2500 | ||
|
|
a42474e811 | ||
|
|
e05643e016 | ||
|
|
da9c45a987 | ||
|
|
8036da6e32 | ||
|
|
55abd409f3 | ||
|
|
e668180b14 | ||
|
|
ba13ebf751 | ||
|
|
8eb637c446 | ||
|
|
f888ef5387 | ||
|
|
1300819269 | ||
|
|
e956bcaac0 | ||
|
|
8309f9420b | ||
|
|
428f9f092e | ||
|
|
6f43eab57b | ||
|
|
c655607bc1 | ||
|
|
3f0c09cbe3 | ||
|
|
fea4a9a34b | ||
|
|
885eb4b867 | ||
|
|
da2a9db70c | ||
|
|
bc3d258435 | ||
|
|
0c79eb27db | ||
|
|
6a99126485 | ||
|
|
b345bf8876 | ||
|
|
6482d082cc | ||
|
|
db6cae4ae1 | ||
|
|
fa5539a16d | ||
|
|
2dbbf7707e | ||
|
|
441b15224e | ||
|
|
b3a642dc24 | ||
|
|
24dfde46ce | ||
|
|
a45d7cf74a | ||
|
|
39af991a04 | ||
|
|
fa0ab7c151 | ||
|
|
a43f719aee | ||
|
|
28ccf10142 | ||
|
|
7af2b07be3 | ||
|
|
b5955f18b3 | ||
|
|
a450a936d1 | ||
|
|
b666cf1e8e | ||
|
|
94587b6d80 | ||
|
|
d5c6e57627 | ||
|
|
49e7a9616a | ||
|
|
2d117929a6 | ||
|
|
65ec32c666 | ||
|
|
18ef533405 | ||
|
|
202176c3b4 | ||
|
|
c0ca286c04 | ||
|
|
b08ae687b9 | ||
|
|
27346eb50e | ||
|
|
89951248b3 | ||
|
|
ad5c2b8eeb | ||
|
|
5bb4d936cc | ||
|
|
9df9b25c72 | ||
|
|
34fcefe534 | ||
|
|
654076edd4 | ||
|
|
42f974321f | ||
|
|
b670101dac | ||
|
|
4cf50e6e04 | ||
|
|
f44c80c1a2 | ||
|
|
6b45a89f2b | ||
|
|
fc406b8286 | ||
|
|
4a938a7986 | ||
|
|
58025e9cb6 | ||
|
|
51e5586c74 | ||
|
|
acb08eb990 | ||
|
|
c2a506fca0 | ||
|
|
b43b20351f | ||
|
|
d91cf7f120 | ||
|
|
ea33dc43a4 | ||
|
|
b3cde83bf3 | ||
|
|
5f9bba1c08 | ||
|
|
2213af62b4 | ||
|
|
eac886f0e6 | ||
|
|
88dee2156e | ||
|
|
bcddcd4036 | ||
|
|
75381b3ee8 | ||
|
|
9e82bd0b57 | ||
|
|
5ba8cc48fc | ||
|
|
02733d90f2 | ||
|
|
02acefd6e2 | ||
|
|
86621ba836 | ||
|
|
06c081d171 | ||
|
|
165ade92d5 | ||
|
|
c0efd663fd | ||
|
|
9d9b8dcac8 | ||
|
|
73c1c179d0 | ||
|
|
244ad93229 | ||
|
|
dab2ab311b | ||
|
|
367be6f6eb | ||
|
|
97d714f640 | ||
|
|
8762c01669 | ||
|
|
261214ec1c | ||
|
|
7a1684f074 | ||
|
|
efac17198b | ||
|
|
2ff67c72aa | ||
|
|
d9d68529aa | ||
|
|
e24d5b1cf5 | ||
|
|
cea21ad6d0 | ||
|
|
bb678a4fb6 | ||
|
|
68c7bd6e12 | ||
|
|
8cff5594c0 | ||
|
|
abed55aea9 | ||
|
|
0a90d54010 | ||
|
|
fb3f9acc18 | ||
|
|
a3a4a0204c | ||
|
|
d6476ce57e | ||
|
|
787eabd940 | ||
|
|
96ffc7efcd | ||
|
|
2e82fcecff | ||
|
|
f040aefc9f | ||
|
|
53cb3f29c7 | ||
|
|
5c5dce6620 | ||
|
|
22e2b7ff62 | ||
|
|
cfbc848dcf | ||
|
|
245b7e653d | ||
|
|
283246a6b8 | ||
|
|
82b8c7792e | ||
|
|
2a7110e257 | ||
|
|
a58e19827a | ||
|
|
d53e1c235b | ||
|
|
043734f02b | ||
|
|
f9a9673011 | ||
|
|
24018532c8 | ||
|
|
388c534e1f | ||
|
|
aa2f189225 | ||
|
|
8441ce2f47 | ||
|
|
b19764d5dc | ||
|
|
6752af8796 | ||
|
|
526aaa0f9d | ||
|
|
a09c5a3b98 | ||
|
|
fbd62f9596 | ||
|
|
2de8f1921c | ||
|
|
3b0dee7dd5 | ||
|
|
1e6209da3b | ||
|
|
5d3abd3ab0 | ||
|
|
e8bd639634 | ||
|
|
50d87bf5e9 | ||
|
|
a116ea42c8 | ||
|
|
06996d24ff | ||
|
|
c707a4baae | ||
|
|
ef29b3c519 | ||
|
|
e0dda5ab26 | ||
|
|
fbf722d265 | ||
|
|
cf1e31c413 | ||
|
|
7ee47b220d | ||
|
|
d890e5346c | ||
|
|
82c81c10bd | ||
|
|
1daa05a35c | ||
|
|
5ca422b314 | ||
|
|
2dca5aeac2 | ||
|
|
1fa6f3b924 | ||
|
|
cf06939a55 | ||
|
|
52effe19d5 | ||
|
|
dc3b8a5e01 | ||
|
|
9bf742abc0 | ||
|
|
03d60cdfe6 | ||
|
|
bff583ed75 | ||
|
|
a81b8a2254 | ||
|
|
235dde2251 | ||
|
|
916be08116 | ||
|
|
8b87c6ace3 | ||
|
|
ab45707f0f | ||
|
|
6b54467a0d | ||
|
|
01cd8bb57f | ||
|
|
d298c62c6d | ||
|
|
7182a7cff7 | ||
|
|
dd4e41f63f | ||
|
|
6aae3a9c77 | ||
|
|
9ee1807e42 | ||
|
|
7e5d593544 | ||
|
|
9eaaf105c1 | ||
|
|
3d5e9d841f | ||
|
|
ce8c242eb4 | ||
|
|
b23e34494e | ||
|
|
ae028ab4b6 | ||
|
|
13094f1d8b | ||
|
|
4c32a15cfd | ||
|
|
87ae79e0e2 | ||
|
|
dbf2e471b5 | ||
|
|
b3825c209e | ||
|
|
c7d362990f | ||
|
|
13e8c41991 | ||
|
|
f12005b5d0 | ||
|
|
deb560a051 | ||
|
|
91160bf834 | ||
|
|
1cb17152f8 | ||
|
|
f30510ab7d | ||
|
|
84d60b56b3 | ||
|
|
f350691c69 | ||
|
|
265f5fc72e | ||
|
|
c4a47b99ae | ||
|
|
8afd4597fa | ||
|
|
81573bce76 | ||
|
|
ccb58f503c | ||
|
|
a9e7d15bf6 | ||
|
|
aeea07f83d | ||
|
|
a76269ddaf |
811 changed files with 43018 additions and 4654 deletions
5
.github/FUNDING.yml
vendored
5
.github/FUNDING.yml
vendored
|
|
@ -1,3 +1,2 @@
|
||||||
github: delivrance
|
github: Mayuri-Chan
|
||||||
liberapay: delivrance
|
custom: ["https://t.me/Mayuri17_bot?start=donate"]
|
||||||
open_collective: pyrogram
|
|
||||||
|
|
|
||||||
7
.github/ISSUE_TEMPLATE/bug_report.yml
vendored
7
.github/ISSUE_TEMPLATE/bug_report.yml
vendored
|
|
@ -4,12 +4,13 @@ body:
|
||||||
- type: checkboxes
|
- type: checkboxes
|
||||||
attributes:
|
attributes:
|
||||||
label: Checklist
|
label: Checklist
|
||||||
|
description: Invalid, incomplete or inadequate issue reports may not be taken into consideration
|
||||||
options:
|
options:
|
||||||
- label: I am sure the error is coming from Pyrogram's code and not elsewhere
|
- label: I am sure the error is coming from Pyrofork's code and not elsewhere
|
||||||
required: true
|
required: true
|
||||||
- label: I have searched in the issue tracker for similar bug reports, including closed ones
|
- label: I have searched in the issue tracker for similar bug reports, including closed ones
|
||||||
required: true
|
required: true
|
||||||
- label: I ran `pip3 install -U https://github.com/pyrogram/pyrogram/archive/master.zip` and reproduced the issue using the latest development version
|
- label: I ran `pip3 install -U git+https://github.com/Mayuri-Chan/pyrofork` and reproduced the issue using the latest development version
|
||||||
required: true
|
required: true
|
||||||
|
|
||||||
- type: textarea
|
- type: textarea
|
||||||
|
|
@ -34,7 +35,7 @@ body:
|
||||||
- type: textarea
|
- type: textarea
|
||||||
attributes:
|
attributes:
|
||||||
label: Code example
|
label: Code example
|
||||||
description: Provide a [minimal, reproducible](https://stackoverflow.com/help/minimal-reproducible-example) and properly formatted example (if applicable)
|
description: Provide a [minimal, complete, consistently reproducible](https://stackoverflow.com/help/minimal-reproducible-example) and properly formatted example involving normal usages (if applicable)
|
||||||
placeholder: |
|
placeholder: |
|
||||||
from pyrogram import Client
|
from pyrogram import Client
|
||||||
...
|
...
|
||||||
|
|
|
||||||
12
.github/ISSUE_TEMPLATE/config.yml
vendored
12
.github/ISSUE_TEMPLATE/config.yml
vendored
|
|
@ -1,8 +1,8 @@
|
||||||
blank_issues_enabled: false
|
blank_issues_enabled: false
|
||||||
contact_links:
|
contact_links:
|
||||||
- name: Ask Pyrogram related questions
|
- name: Ask Pyrofork related questions
|
||||||
url: https://stackoverflow.com/questions/tagged/pyrogram
|
url: https://stackoverflow.com/questions/tagged/pyrofork
|
||||||
about: This place is only for reporting issues about Pyrogram. You can ask questions at StackOverflow.
|
about: This place is only for reporting issues about Pyrofork. You can ask questions at StackOverflow.
|
||||||
- name: Join the Telegram channel
|
- name: Join the Telegram Chat
|
||||||
url: https://t.me/pyrogram
|
url: https://t.me/MayuriChan_Chat
|
||||||
about: Join the official channel and stay tuned for news, updates and announcements.
|
about: Join the official Chat and stay tuned for news, updates and announcements.
|
||||||
8
.github/dependabot.yml
vendored
Normal file
8
.github/dependabot.yml
vendored
Normal file
|
|
@ -0,0 +1,8 @@
|
||||||
|
version: 2
|
||||||
|
updates:
|
||||||
|
- package-ecosystem: "pip"
|
||||||
|
directory: "/"
|
||||||
|
schedule:
|
||||||
|
interval: "daily"
|
||||||
|
time: "22:00"
|
||||||
|
open-pull-requests-limit: 10
|
||||||
38
.github/workflows/build-docs.yml
vendored
Normal file
38
.github/workflows/build-docs.yml
vendored
Normal file
|
|
@ -0,0 +1,38 @@
|
||||||
|
name: Build-docs
|
||||||
|
|
||||||
|
on:
|
||||||
|
push:
|
||||||
|
tags:
|
||||||
|
- "*"
|
||||||
|
branches:
|
||||||
|
- staging
|
||||||
|
- dev/*
|
||||||
|
|
||||||
|
jobs:
|
||||||
|
build:
|
||||||
|
|
||||||
|
runs-on: ubuntu-22.04
|
||||||
|
|
||||||
|
steps:
|
||||||
|
- name: Checkout repository
|
||||||
|
uses: actions/checkout@v4
|
||||||
|
|
||||||
|
- name: Configure
|
||||||
|
run: bash build-docs.sh configure
|
||||||
|
|
||||||
|
- name: Cleanup
|
||||||
|
run: bash build-docs.sh cleanup
|
||||||
|
|
||||||
|
- name: Create virtual environment
|
||||||
|
run: bash build-docs.sh virtualenv
|
||||||
|
|
||||||
|
- name: Build
|
||||||
|
run: bash build-docs.sh build
|
||||||
|
|
||||||
|
- name: Clone gh-pages repository
|
||||||
|
run: bash build-docs.sh clone
|
||||||
|
env:
|
||||||
|
DOCS_KEY: ${{ secrets.DOCS_KEY }}
|
||||||
|
|
||||||
|
- name: Push changes
|
||||||
|
run: bash build-docs.sh push
|
||||||
40
.github/workflows/python-publish.yml
vendored
Normal file
40
.github/workflows/python-publish.yml
vendored
Normal file
|
|
@ -0,0 +1,40 @@
|
||||||
|
# This workflow will upload a Python Package using Twine when a release is created
|
||||||
|
# For more information see: https://docs.github.com/en/actions/automating-builds-and-tests/building-and-testing-python#publishing-to-package-registries
|
||||||
|
|
||||||
|
# This workflow uses actions that are not certified by GitHub.
|
||||||
|
# They are provided by a third-party and are governed by
|
||||||
|
# separate terms of service, privacy policy, and support
|
||||||
|
# documentation.
|
||||||
|
|
||||||
|
name: Upload Python Package
|
||||||
|
|
||||||
|
on:
|
||||||
|
push:
|
||||||
|
tags:
|
||||||
|
- '*'
|
||||||
|
|
||||||
|
permissions:
|
||||||
|
contents: read
|
||||||
|
|
||||||
|
jobs:
|
||||||
|
deploy:
|
||||||
|
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
environment: release
|
||||||
|
permissions:
|
||||||
|
id-token: write
|
||||||
|
|
||||||
|
steps:
|
||||||
|
- uses: actions/checkout@v4
|
||||||
|
- name: Set up Python
|
||||||
|
uses: actions/setup-python@v5
|
||||||
|
with:
|
||||||
|
python-version: '3.10'
|
||||||
|
- name: Install dependencies
|
||||||
|
run: |
|
||||||
|
python -m pip install --upgrade pip
|
||||||
|
pip install -e '.[dev]'
|
||||||
|
- name: Build package
|
||||||
|
run: hatch build
|
||||||
|
- name: Publish package
|
||||||
|
uses: pypa/gh-action-pypi-publish@release/v1
|
||||||
10
.github/workflows/python.yml
vendored
10
.github/workflows/python.yml
vendored
|
|
@ -1,4 +1,4 @@
|
||||||
name: Pyrogram
|
name: Pyrofork
|
||||||
|
|
||||||
on: [push, pull_request]
|
on: [push, pull_request]
|
||||||
|
|
||||||
|
|
@ -9,13 +9,13 @@ jobs:
|
||||||
strategy:
|
strategy:
|
||||||
matrix:
|
matrix:
|
||||||
os: [ubuntu-latest, macos-latest]
|
os: [ubuntu-latest, macos-latest]
|
||||||
python-version: ["3.7", "3.8", "3.9", "3.10", "3.11"]
|
python-version: ["3.10", "3.11", "3.12", "3.13", "3.14"]
|
||||||
|
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@v3
|
- uses: actions/checkout@v4
|
||||||
|
|
||||||
- name: Set up Python ${{ matrix.python-version }}
|
- name: Set up Python ${{ matrix.python-version }}
|
||||||
uses: actions/setup-python@v2
|
uses: actions/setup-python@v5
|
||||||
with:
|
with:
|
||||||
python-version: ${{ matrix.python-version }}
|
python-version: ${{ matrix.python-version }}
|
||||||
|
|
||||||
|
|
@ -31,4 +31,4 @@ jobs:
|
||||||
|
|
||||||
- name: Run tests
|
- name: Run tests
|
||||||
run: |
|
run: |
|
||||||
tox
|
tox
|
||||||
|
|
|
||||||
651
.pylintrc
Normal file
651
.pylintrc
Normal file
|
|
@ -0,0 +1,651 @@
|
||||||
|
[MAIN]
|
||||||
|
|
||||||
|
# Analyse import fallback blocks. This can be used to support both Python 2 and
|
||||||
|
# 3 compatible code, which means that the block might have code that exists
|
||||||
|
# only in one or another interpreter, leading to false positives when analysed.
|
||||||
|
analyse-fallback-blocks=no
|
||||||
|
|
||||||
|
# Clear in-memory caches upon conclusion of linting. Useful if running pylint
|
||||||
|
# in a server-like mode.
|
||||||
|
clear-cache-post-run=no
|
||||||
|
|
||||||
|
# Load and enable all available extensions. Use --list-extensions to see a list
|
||||||
|
# all available extensions.
|
||||||
|
#enable-all-extensions=
|
||||||
|
|
||||||
|
# In error mode, messages with a category besides ERROR or FATAL are
|
||||||
|
# suppressed, and no reports are done by default. Error mode is compatible with
|
||||||
|
# disabling specific errors.
|
||||||
|
#errors-only=
|
||||||
|
|
||||||
|
# Always return a 0 (non-error) status code, even if lint errors are found.
|
||||||
|
# This is primarily useful in continuous integration scripts.
|
||||||
|
#exit-zero=
|
||||||
|
|
||||||
|
# A comma-separated list of package or module names from where C extensions may
|
||||||
|
# be loaded. Extensions are loading into the active Python interpreter and may
|
||||||
|
# run arbitrary code.
|
||||||
|
extension-pkg-allow-list=
|
||||||
|
|
||||||
|
# A comma-separated list of package or module names from where C extensions may
|
||||||
|
# be loaded. Extensions are loading into the active Python interpreter and may
|
||||||
|
# run arbitrary code. (This is an alternative name to extension-pkg-allow-list
|
||||||
|
# for backward compatibility.)
|
||||||
|
extension-pkg-whitelist=
|
||||||
|
|
||||||
|
# Return non-zero exit code if any of these messages/categories are detected,
|
||||||
|
# even if score is above --fail-under value. Syntax same as enable. Messages
|
||||||
|
# specified are enabled, while categories only check already-enabled messages.
|
||||||
|
fail-on=
|
||||||
|
|
||||||
|
# Specify a score threshold under which the program will exit with error.
|
||||||
|
fail-under=10
|
||||||
|
|
||||||
|
# Interpret the stdin as a python script, whose filename needs to be passed as
|
||||||
|
# the module_or_package argument.
|
||||||
|
#from-stdin=
|
||||||
|
|
||||||
|
# Files or directories to be skipped. They should be base names, not paths.
|
||||||
|
ignore=CVS
|
||||||
|
|
||||||
|
# Add files or directories matching the regular expressions patterns to the
|
||||||
|
# ignore-list. The regex matches against paths and can be in Posix or Windows
|
||||||
|
# format. Because '\\' represents the directory delimiter on Windows systems,
|
||||||
|
# it can't be used as an escape character.
|
||||||
|
ignore-paths=
|
||||||
|
|
||||||
|
# Files or directories matching the regular expression patterns are skipped.
|
||||||
|
# The regex matches against base names, not paths. The default value ignores
|
||||||
|
# Emacs file locks
|
||||||
|
ignore-patterns=^\.#
|
||||||
|
|
||||||
|
# List of module names for which member attributes should not be checked and
|
||||||
|
# will not be imported (useful for modules/projects where namespaces are
|
||||||
|
# manipulated during runtime and thus existing member attributes cannot be
|
||||||
|
# deduced by static analysis). It supports qualified module names, as well as
|
||||||
|
# Unix pattern matching.
|
||||||
|
ignored-modules=
|
||||||
|
|
||||||
|
# Python code to execute, usually for sys.path manipulation such as
|
||||||
|
# pygtk.require().
|
||||||
|
#init-hook=
|
||||||
|
|
||||||
|
# Use multiple processes to speed up Pylint. Specifying 0 will auto-detect the
|
||||||
|
# number of processors available to use, and will cap the count on Windows to
|
||||||
|
# avoid hangs.
|
||||||
|
jobs=1
|
||||||
|
|
||||||
|
# Control the amount of potential inferred values when inferring a single
|
||||||
|
# object. This can help the performance when dealing with large functions or
|
||||||
|
# complex, nested conditions.
|
||||||
|
limit-inference-results=100
|
||||||
|
|
||||||
|
# List of plugins (as comma separated values of python module names) to load,
|
||||||
|
# usually to register additional checkers.
|
||||||
|
load-plugins=
|
||||||
|
|
||||||
|
# Pickle collected data for later comparisons.
|
||||||
|
persistent=yes
|
||||||
|
|
||||||
|
# Resolve imports to .pyi stubs if available. May reduce no-member messages and
|
||||||
|
# increase not-an-iterable messages.
|
||||||
|
prefer-stubs=no
|
||||||
|
|
||||||
|
# Minimum Python version to use for version dependent checks. Will default to
|
||||||
|
# the version used to run pylint.
|
||||||
|
py-version=3.13
|
||||||
|
|
||||||
|
# Discover python modules and packages in the file system subtree.
|
||||||
|
recursive=no
|
||||||
|
|
||||||
|
# Add paths to the list of the source roots. Supports globbing patterns. The
|
||||||
|
# source root is an absolute path or a path relative to the current working
|
||||||
|
# directory used to determine a package namespace for modules located under the
|
||||||
|
# source root.
|
||||||
|
source-roots=
|
||||||
|
|
||||||
|
# When enabled, pylint would attempt to guess common misconfiguration and emit
|
||||||
|
# user-friendly hints instead of false-positive error messages.
|
||||||
|
suggestion-mode=yes
|
||||||
|
|
||||||
|
# Allow loading of arbitrary C extensions. Extensions are imported into the
|
||||||
|
# active Python interpreter and may run arbitrary code.
|
||||||
|
unsafe-load-any-extension=no
|
||||||
|
|
||||||
|
# In verbose mode, extra non-checker-related info will be displayed.
|
||||||
|
#verbose=
|
||||||
|
|
||||||
|
|
||||||
|
[BASIC]
|
||||||
|
|
||||||
|
# Naming style matching correct argument names.
|
||||||
|
argument-naming-style=snake_case
|
||||||
|
|
||||||
|
# Regular expression matching correct argument names. Overrides argument-
|
||||||
|
# naming-style. If left empty, argument names will be checked with the set
|
||||||
|
# naming style.
|
||||||
|
#argument-rgx=
|
||||||
|
|
||||||
|
# Naming style matching correct attribute names.
|
||||||
|
attr-naming-style=snake_case
|
||||||
|
|
||||||
|
# Regular expression matching correct attribute names. Overrides attr-naming-
|
||||||
|
# style. If left empty, attribute names will be checked with the set naming
|
||||||
|
# style.
|
||||||
|
#attr-rgx=
|
||||||
|
|
||||||
|
# Bad variable names which should always be refused, separated by a comma.
|
||||||
|
bad-names=foo,
|
||||||
|
bar,
|
||||||
|
baz,
|
||||||
|
toto,
|
||||||
|
tutu,
|
||||||
|
tata
|
||||||
|
|
||||||
|
# Bad variable names regexes, separated by a comma. If names match any regex,
|
||||||
|
# they will always be refused
|
||||||
|
bad-names-rgxs=
|
||||||
|
|
||||||
|
# Naming style matching correct class attribute names.
|
||||||
|
class-attribute-naming-style=any
|
||||||
|
|
||||||
|
# Regular expression matching correct class attribute names. Overrides class-
|
||||||
|
# attribute-naming-style. If left empty, class attribute names will be checked
|
||||||
|
# with the set naming style.
|
||||||
|
#class-attribute-rgx=
|
||||||
|
|
||||||
|
# Naming style matching correct class constant names.
|
||||||
|
class-const-naming-style=UPPER_CASE
|
||||||
|
|
||||||
|
# Regular expression matching correct class constant names. Overrides class-
|
||||||
|
# const-naming-style. If left empty, class constant names will be checked with
|
||||||
|
# the set naming style.
|
||||||
|
#class-const-rgx=
|
||||||
|
|
||||||
|
# Naming style matching correct class names.
|
||||||
|
class-naming-style=PascalCase
|
||||||
|
|
||||||
|
# Regular expression matching correct class names. Overrides class-naming-
|
||||||
|
# style. If left empty, class names will be checked with the set naming style.
|
||||||
|
#class-rgx=
|
||||||
|
|
||||||
|
# Naming style matching correct constant names.
|
||||||
|
const-naming-style=UPPER_CASE
|
||||||
|
|
||||||
|
# Regular expression matching correct constant names. Overrides const-naming-
|
||||||
|
# style. If left empty, constant names will be checked with the set naming
|
||||||
|
# style.
|
||||||
|
#const-rgx=
|
||||||
|
|
||||||
|
# Minimum line length for functions/classes that require docstrings, shorter
|
||||||
|
# ones are exempt.
|
||||||
|
docstring-min-length=-1
|
||||||
|
|
||||||
|
# Naming style matching correct function names.
|
||||||
|
function-naming-style=snake_case
|
||||||
|
|
||||||
|
# Regular expression matching correct function names. Overrides function-
|
||||||
|
# naming-style. If left empty, function names will be checked with the set
|
||||||
|
# naming style.
|
||||||
|
#function-rgx=
|
||||||
|
|
||||||
|
# Good variable names which should always be accepted, separated by a comma.
|
||||||
|
good-names=i,
|
||||||
|
j,
|
||||||
|
k,
|
||||||
|
ex,
|
||||||
|
Run,
|
||||||
|
_
|
||||||
|
|
||||||
|
# Good variable names regexes, separated by a comma. If names match any regex,
|
||||||
|
# they will always be accepted
|
||||||
|
good-names-rgxs=
|
||||||
|
|
||||||
|
# Include a hint for the correct naming format with invalid-name.
|
||||||
|
include-naming-hint=no
|
||||||
|
|
||||||
|
# Naming style matching correct inline iteration names.
|
||||||
|
inlinevar-naming-style=any
|
||||||
|
|
||||||
|
# Regular expression matching correct inline iteration names. Overrides
|
||||||
|
# inlinevar-naming-style. If left empty, inline iteration names will be checked
|
||||||
|
# with the set naming style.
|
||||||
|
#inlinevar-rgx=
|
||||||
|
|
||||||
|
# Naming style matching correct method names.
|
||||||
|
method-naming-style=snake_case
|
||||||
|
|
||||||
|
# Regular expression matching correct method names. Overrides method-naming-
|
||||||
|
# style. If left empty, method names will be checked with the set naming style.
|
||||||
|
#method-rgx=
|
||||||
|
|
||||||
|
# Naming style matching correct module names.
|
||||||
|
module-naming-style=snake_case
|
||||||
|
|
||||||
|
# Regular expression matching correct module names. Overrides module-naming-
|
||||||
|
# style. If left empty, module names will be checked with the set naming style.
|
||||||
|
#module-rgx=
|
||||||
|
|
||||||
|
# Colon-delimited sets of names that determine each other's naming style when
|
||||||
|
# the name regexes allow several styles.
|
||||||
|
name-group=
|
||||||
|
|
||||||
|
# Regular expression which should only match function or class names that do
|
||||||
|
# not require a docstring.
|
||||||
|
no-docstring-rgx=^_
|
||||||
|
|
||||||
|
# List of decorators that produce properties, such as abc.abstractproperty. Add
|
||||||
|
# to this list to register other decorators that produce valid properties.
|
||||||
|
# These decorators are taken in consideration only for invalid-name.
|
||||||
|
property-classes=abc.abstractproperty
|
||||||
|
|
||||||
|
# Regular expression matching correct type alias names. If left empty, type
|
||||||
|
# alias names will be checked with the set naming style.
|
||||||
|
#typealias-rgx=
|
||||||
|
|
||||||
|
# Regular expression matching correct type variable names. If left empty, type
|
||||||
|
# variable names will be checked with the set naming style.
|
||||||
|
#typevar-rgx=
|
||||||
|
|
||||||
|
# Naming style matching correct variable names.
|
||||||
|
variable-naming-style=snake_case
|
||||||
|
|
||||||
|
# Regular expression matching correct variable names. Overrides variable-
|
||||||
|
# naming-style. If left empty, variable names will be checked with the set
|
||||||
|
# naming style.
|
||||||
|
#variable-rgx=
|
||||||
|
|
||||||
|
|
||||||
|
[CLASSES]
|
||||||
|
|
||||||
|
# Warn about protected attribute access inside special methods
|
||||||
|
check-protected-access-in-special-methods=no
|
||||||
|
|
||||||
|
# List of method names used to declare (i.e. assign) instance attributes.
|
||||||
|
defining-attr-methods=__init__,
|
||||||
|
__new__,
|
||||||
|
setUp,
|
||||||
|
asyncSetUp,
|
||||||
|
__post_init__
|
||||||
|
|
||||||
|
# List of member names, which should be excluded from the protected access
|
||||||
|
# warning.
|
||||||
|
exclude-protected=_asdict,_fields,_replace,_source,_make,os._exit
|
||||||
|
|
||||||
|
# List of valid names for the first argument in a class method.
|
||||||
|
valid-classmethod-first-arg=cls
|
||||||
|
|
||||||
|
# List of valid names for the first argument in a metaclass class method.
|
||||||
|
valid-metaclass-classmethod-first-arg=mcs
|
||||||
|
|
||||||
|
|
||||||
|
[DESIGN]
|
||||||
|
|
||||||
|
# List of regular expressions of class ancestor names to ignore when counting
|
||||||
|
# public methods (see R0903)
|
||||||
|
exclude-too-few-public-methods=
|
||||||
|
|
||||||
|
# List of qualified class names to ignore when counting class parents (see
|
||||||
|
# R0901)
|
||||||
|
ignored-parents=
|
||||||
|
|
||||||
|
# Maximum number of arguments for function / method.
|
||||||
|
max-args=5
|
||||||
|
|
||||||
|
# Maximum number of attributes for a class (see R0902).
|
||||||
|
max-attributes=7
|
||||||
|
|
||||||
|
# Maximum number of boolean expressions in an if statement (see R0916).
|
||||||
|
max-bool-expr=5
|
||||||
|
|
||||||
|
# Maximum number of branch for function / method body.
|
||||||
|
max-branches=12
|
||||||
|
|
||||||
|
# Maximum number of locals for function / method body.
|
||||||
|
max-locals=15
|
||||||
|
|
||||||
|
# Maximum number of parents for a class (see R0901).
|
||||||
|
max-parents=7
|
||||||
|
|
||||||
|
# Maximum number of positional arguments for function / method.
|
||||||
|
max-positional-arguments=5
|
||||||
|
|
||||||
|
# Maximum number of public methods for a class (see R0904).
|
||||||
|
max-public-methods=20
|
||||||
|
|
||||||
|
# Maximum number of return / yield for function / method body.
|
||||||
|
max-returns=6
|
||||||
|
|
||||||
|
# Maximum number of statements in function / method body.
|
||||||
|
max-statements=50
|
||||||
|
|
||||||
|
# Minimum number of public methods for a class (see R0903).
|
||||||
|
min-public-methods=2
|
||||||
|
|
||||||
|
|
||||||
|
[EXCEPTIONS]
|
||||||
|
|
||||||
|
# Exceptions that will emit a warning when caught.
|
||||||
|
overgeneral-exceptions=builtins.BaseException,builtins.Exception
|
||||||
|
|
||||||
|
|
||||||
|
[FORMAT]
|
||||||
|
|
||||||
|
# Expected format of line ending, e.g. empty (any line ending), LF or CRLF.
|
||||||
|
expected-line-ending-format=
|
||||||
|
|
||||||
|
# Regexp for a line that is allowed to be longer than the limit.
|
||||||
|
ignore-long-lines=^\s*(# )?<?https?://\S+>?$
|
||||||
|
|
||||||
|
# Number of spaces of indent required inside a hanging or continued line.
|
||||||
|
indent-after-paren=4
|
||||||
|
|
||||||
|
# String used as indentation unit. This is usually " " (4 spaces) or "\t" (1
|
||||||
|
# tab).
|
||||||
|
indent-string=' '
|
||||||
|
|
||||||
|
# Maximum number of characters on a single line.
|
||||||
|
max-line-length=100
|
||||||
|
|
||||||
|
# Maximum number of lines in a module.
|
||||||
|
max-module-lines=1000
|
||||||
|
|
||||||
|
# Allow the body of a class to be on the same line as the declaration if body
|
||||||
|
# contains single statement.
|
||||||
|
single-line-class-stmt=no
|
||||||
|
|
||||||
|
# Allow the body of an if to be on the same line as the test if there is no
|
||||||
|
# else.
|
||||||
|
single-line-if-stmt=no
|
||||||
|
|
||||||
|
|
||||||
|
[IMPORTS]
|
||||||
|
|
||||||
|
# List of modules that can be imported at any level, not just the top level
|
||||||
|
# one.
|
||||||
|
allow-any-import-level=
|
||||||
|
|
||||||
|
# Allow explicit reexports by alias from a package __init__.
|
||||||
|
allow-reexport-from-package=no
|
||||||
|
|
||||||
|
# Allow wildcard imports from modules that define __all__.
|
||||||
|
allow-wildcard-with-all=no
|
||||||
|
|
||||||
|
# Deprecated modules which should not be used, separated by a comma.
|
||||||
|
deprecated-modules=
|
||||||
|
|
||||||
|
# Output a graph (.gv or any supported image format) of external dependencies
|
||||||
|
# to the given file (report RP0402 must not be disabled).
|
||||||
|
ext-import-graph=
|
||||||
|
|
||||||
|
# Output a graph (.gv or any supported image format) of all (i.e. internal and
|
||||||
|
# external) dependencies to the given file (report RP0402 must not be
|
||||||
|
# disabled).
|
||||||
|
import-graph=
|
||||||
|
|
||||||
|
# Output a graph (.gv or any supported image format) of internal dependencies
|
||||||
|
# to the given file (report RP0402 must not be disabled).
|
||||||
|
int-import-graph=
|
||||||
|
|
||||||
|
# Force import order to recognize a module as part of the standard
|
||||||
|
# compatibility libraries.
|
||||||
|
known-standard-library=
|
||||||
|
|
||||||
|
# Force import order to recognize a module as part of a third party library.
|
||||||
|
known-third-party=enchant
|
||||||
|
|
||||||
|
# Couples of modules and preferred modules, separated by a comma.
|
||||||
|
preferred-modules=
|
||||||
|
|
||||||
|
|
||||||
|
[LOGGING]
|
||||||
|
|
||||||
|
# The type of string formatting that logging methods do. `old` means using %
|
||||||
|
# formatting, `new` is for `{}` formatting.
|
||||||
|
logging-format-style=old
|
||||||
|
|
||||||
|
# Logging modules to check that the string format arguments are in logging
|
||||||
|
# function parameter format.
|
||||||
|
logging-modules=logging
|
||||||
|
|
||||||
|
|
||||||
|
[MESSAGES CONTROL]
|
||||||
|
|
||||||
|
# Only show warnings with the listed confidence levels. Leave empty to show
|
||||||
|
# all. Valid levels: HIGH, CONTROL_FLOW, INFERENCE, INFERENCE_FAILURE,
|
||||||
|
# UNDEFINED.
|
||||||
|
confidence=HIGH,
|
||||||
|
CONTROL_FLOW,
|
||||||
|
INFERENCE,
|
||||||
|
INFERENCE_FAILURE,
|
||||||
|
UNDEFINED
|
||||||
|
|
||||||
|
# Disable the message, report, category or checker with the given id(s). You
|
||||||
|
# can either give multiple identifiers separated by comma (,) or put this
|
||||||
|
# option multiple times (only on the command line, not in the configuration
|
||||||
|
# file where it should appear only once). You can also use "--disable=all" to
|
||||||
|
# disable everything first and then re-enable specific checks. For example, if
|
||||||
|
# you want to run only the similarities checker, you can use "--disable=all
|
||||||
|
# --enable=similarities". If you want to run only the classes checker, but have
|
||||||
|
# no Warning level messages displayed, use "--disable=all --enable=classes
|
||||||
|
# --disable=W".
|
||||||
|
disable=raw-checker-failed,
|
||||||
|
bad-inline-option,
|
||||||
|
locally-disabled,
|
||||||
|
file-ignored,
|
||||||
|
suppressed-message,
|
||||||
|
useless-suppression,
|
||||||
|
deprecated-pragma,
|
||||||
|
use-implicit-booleaness-not-comparison-to-string,
|
||||||
|
use-implicit-booleaness-not-comparison-to-zero,
|
||||||
|
use-symbolic-message-instead,
|
||||||
|
missing-module-docstring,
|
||||||
|
missing-class-docstring,
|
||||||
|
missing-function-docstring,
|
||||||
|
redefined-builtin
|
||||||
|
|
||||||
|
# Enable the message, report, category or checker with the given id(s). You can
|
||||||
|
# either give multiple identifier separated by comma (,) or put this option
|
||||||
|
# multiple time (only on the command line, not in the configuration file where
|
||||||
|
# it should appear only once). See also the "--disable" option for examples.
|
||||||
|
enable=
|
||||||
|
|
||||||
|
|
||||||
|
[METHOD_ARGS]
|
||||||
|
|
||||||
|
# List of qualified names (i.e., library.method) which require a timeout
|
||||||
|
# parameter e.g. 'requests.api.get,requests.api.post'
|
||||||
|
timeout-methods=requests.api.delete,requests.api.get,requests.api.head,requests.api.options,requests.api.patch,requests.api.post,requests.api.put,requests.api.request
|
||||||
|
|
||||||
|
|
||||||
|
[MISCELLANEOUS]
|
||||||
|
|
||||||
|
# List of note tags to take in consideration, separated by a comma.
|
||||||
|
notes=FIXME,
|
||||||
|
XXX,
|
||||||
|
TODO
|
||||||
|
|
||||||
|
# Regular expression of note tags to take in consideration.
|
||||||
|
notes-rgx=
|
||||||
|
|
||||||
|
|
||||||
|
[REFACTORING]
|
||||||
|
|
||||||
|
# Maximum number of nested blocks for function / method body
|
||||||
|
max-nested-blocks=5
|
||||||
|
|
||||||
|
# Complete name of functions that never returns. When checking for
|
||||||
|
# inconsistent-return-statements if a never returning function is called then
|
||||||
|
# it will be considered as an explicit return statement and no message will be
|
||||||
|
# printed.
|
||||||
|
never-returning-functions=sys.exit,argparse.parse_error
|
||||||
|
|
||||||
|
# Let 'consider-using-join' be raised when the separator to join on would be
|
||||||
|
# non-empty (resulting in expected fixes of the type: ``"- " + " -
|
||||||
|
# ".join(items)``)
|
||||||
|
suggest-join-with-non-empty-separator=yes
|
||||||
|
|
||||||
|
|
||||||
|
[REPORTS]
|
||||||
|
|
||||||
|
# Python expression which should return a score less than or equal to 10. You
|
||||||
|
# have access to the variables 'fatal', 'error', 'warning', 'refactor',
|
||||||
|
# 'convention', and 'info' which contain the number of messages in each
|
||||||
|
# category, as well as 'statement' which is the total number of statements
|
||||||
|
# analyzed. This score is used by the global evaluation report (RP0004).
|
||||||
|
evaluation=max(0, 0 if fatal else 10.0 - ((float(5 * error + warning + refactor + convention) / statement) * 10))
|
||||||
|
|
||||||
|
# Template used to display messages. This is a python new-style format string
|
||||||
|
# used to format the message information. See doc for all details.
|
||||||
|
msg-template=
|
||||||
|
|
||||||
|
# Set the output format. Available formats are: 'text', 'parseable',
|
||||||
|
# 'colorized', 'json2' (improved json format), 'json' (old json format), msvs
|
||||||
|
# (visual studio) and 'github' (GitHub actions). You can also give a reporter
|
||||||
|
# class, e.g. mypackage.mymodule.MyReporterClass.
|
||||||
|
#output-format=
|
||||||
|
|
||||||
|
# Tells whether to display a full report or only the messages.
|
||||||
|
reports=no
|
||||||
|
|
||||||
|
# Activate the evaluation score.
|
||||||
|
score=yes
|
||||||
|
|
||||||
|
|
||||||
|
[SIMILARITIES]
|
||||||
|
|
||||||
|
# Comments are removed from the similarity computation
|
||||||
|
ignore-comments=yes
|
||||||
|
|
||||||
|
# Docstrings are removed from the similarity computation
|
||||||
|
ignore-docstrings=yes
|
||||||
|
|
||||||
|
# Imports are removed from the similarity computation
|
||||||
|
ignore-imports=yes
|
||||||
|
|
||||||
|
# Signatures are removed from the similarity computation
|
||||||
|
ignore-signatures=yes
|
||||||
|
|
||||||
|
# Minimum lines number of a similarity.
|
||||||
|
min-similarity-lines=4
|
||||||
|
|
||||||
|
|
||||||
|
[SPELLING]
|
||||||
|
|
||||||
|
# Limits count of emitted suggestions for spelling mistakes.
|
||||||
|
max-spelling-suggestions=4
|
||||||
|
|
||||||
|
# Spelling dictionary name. No available dictionaries : You need to install
|
||||||
|
# both the python package and the system dependency for enchant to work.
|
||||||
|
spelling-dict=
|
||||||
|
|
||||||
|
# List of comma separated words that should be considered directives if they
|
||||||
|
# appear at the beginning of a comment and should not be checked.
|
||||||
|
spelling-ignore-comment-directives=fmt: on,fmt: off,noqa:,noqa,nosec,isort:skip,mypy:
|
||||||
|
|
||||||
|
# List of comma separated words that should not be checked.
|
||||||
|
spelling-ignore-words=
|
||||||
|
|
||||||
|
# A path to a file that contains the private dictionary; one word per line.
|
||||||
|
spelling-private-dict-file=
|
||||||
|
|
||||||
|
# Tells whether to store unknown words to the private dictionary (see the
|
||||||
|
# --spelling-private-dict-file option) instead of raising a message.
|
||||||
|
spelling-store-unknown-words=no
|
||||||
|
|
||||||
|
|
||||||
|
[STRING]
|
||||||
|
|
||||||
|
# This flag controls whether inconsistent-quotes generates a warning when the
|
||||||
|
# character used as a quote delimiter is used inconsistently within a module.
|
||||||
|
check-quote-consistency=no
|
||||||
|
|
||||||
|
# This flag controls whether the implicit-str-concat should generate a warning
|
||||||
|
# on implicit string concatenation in sequences defined over several lines.
|
||||||
|
check-str-concat-over-line-jumps=no
|
||||||
|
|
||||||
|
|
||||||
|
[TYPECHECK]
|
||||||
|
|
||||||
|
# List of decorators that produce context managers, such as
|
||||||
|
# contextlib.contextmanager. Add to this list to register other decorators that
|
||||||
|
# produce valid context managers.
|
||||||
|
contextmanager-decorators=contextlib.contextmanager
|
||||||
|
|
||||||
|
# List of members which are set dynamically and missed by pylint inference
|
||||||
|
# system, and so shouldn't trigger E1101 when accessed. Python regular
|
||||||
|
# expressions are accepted.
|
||||||
|
generated-members=
|
||||||
|
|
||||||
|
# Tells whether to warn about missing members when the owner of the attribute
|
||||||
|
# is inferred to be None.
|
||||||
|
ignore-none=yes
|
||||||
|
|
||||||
|
# This flag controls whether pylint should warn about no-member and similar
|
||||||
|
# checks whenever an opaque object is returned when inferring. The inference
|
||||||
|
# can return multiple potential results while evaluating a Python object, but
|
||||||
|
# some branches might not be evaluated, which results in partial inference. In
|
||||||
|
# that case, it might be useful to still emit no-member and other checks for
|
||||||
|
# the rest of the inferred objects.
|
||||||
|
ignore-on-opaque-inference=yes
|
||||||
|
|
||||||
|
# List of symbolic message names to ignore for Mixin members.
|
||||||
|
ignored-checks-for-mixins=no-member,
|
||||||
|
not-async-context-manager,
|
||||||
|
not-context-manager,
|
||||||
|
attribute-defined-outside-init
|
||||||
|
|
||||||
|
# List of class names for which member attributes should not be checked (useful
|
||||||
|
# for classes with dynamically set attributes). This supports the use of
|
||||||
|
# qualified names.
|
||||||
|
ignored-classes=optparse.Values,thread._local,_thread._local,argparse.Namespace
|
||||||
|
|
||||||
|
# Show a hint with possible names when a member name was not found. The aspect
|
||||||
|
# of finding the hint is based on edit distance.
|
||||||
|
missing-member-hint=yes
|
||||||
|
|
||||||
|
# The minimum edit distance a name should have in order to be considered a
|
||||||
|
# similar match for a missing member name.
|
||||||
|
missing-member-hint-distance=1
|
||||||
|
|
||||||
|
# The total number of similar names that should be taken in consideration when
|
||||||
|
# showing a hint for a missing member.
|
||||||
|
missing-member-max-choices=1
|
||||||
|
|
||||||
|
# Regex pattern to define which classes are considered mixins.
|
||||||
|
mixin-class-rgx=.*[Mm]ixin
|
||||||
|
|
||||||
|
# List of decorators that change the signature of a decorated function.
|
||||||
|
signature-mutators=
|
||||||
|
|
||||||
|
|
||||||
|
[VARIABLES]
|
||||||
|
|
||||||
|
# List of additional names supposed to be defined in builtins. Remember that
|
||||||
|
# you should avoid defining new builtins when possible.
|
||||||
|
additional-builtins=
|
||||||
|
|
||||||
|
# Tells whether unused global variables should be treated as a violation.
|
||||||
|
allow-global-unused-variables=yes
|
||||||
|
|
||||||
|
# List of names allowed to shadow builtins
|
||||||
|
allowed-redefined-builtins=
|
||||||
|
|
||||||
|
# List of strings which can identify a callback function by name. A callback
|
||||||
|
# name must start or end with one of those strings.
|
||||||
|
callbacks=cb_,
|
||||||
|
_cb
|
||||||
|
|
||||||
|
# A regular expression matching the name of dummy variables (i.e. expected to
|
||||||
|
# not be used).
|
||||||
|
dummy-variables-rgx=_+$|(_[a-zA-Z0-9_]*[a-zA-Z0-9]+?$)|dummy|^ignored_|^unused_
|
||||||
|
|
||||||
|
# Argument names that match this expression will be ignored.
|
||||||
|
ignored-argument-names=_.*|^ignored_|^unused_
|
||||||
|
|
||||||
|
# Tells whether we should check for unused import in __init__ files.
|
||||||
|
init-import=no
|
||||||
|
|
||||||
|
# List of qualified module names which can have objects that can redefine
|
||||||
|
# builtins.
|
||||||
|
redefining-builtins-modules=six.moves,past.builtins,future.builtins,builtins,io
|
||||||
|
|
@ -1,5 +1,5 @@
|
||||||
## Include
|
## Include
|
||||||
include README.md COPYING COPYING.lesser NOTICE requirements.txt
|
include README.md COPYING COPYING.lesser NOTICE
|
||||||
recursive-include compiler *.py *.tl *.tsv *.txt
|
recursive-include compiler *.py *.tl *.tsv *.txt
|
||||||
recursive-include tests *.py
|
recursive-include tests *.py
|
||||||
|
|
||||||
|
|
|
||||||
8
Makefile
8
Makefile
|
|
@ -11,9 +11,13 @@ venv:
|
||||||
$(RM) $(VENV)
|
$(RM) $(VENV)
|
||||||
python3 -m venv $(VENV)
|
python3 -m venv $(VENV)
|
||||||
$(PYTHON) -m pip install -U pip wheel setuptools
|
$(PYTHON) -m pip install -U pip wheel setuptools
|
||||||
$(PYTHON) -m pip install -U -r requirements.txt -r dev-requirements.txt
|
$(PYTHON) -m pip install -U -e .
|
||||||
@echo "Created venv with $$($(PYTHON) --version)"
|
@echo "Created venv with $$($(PYTHON) --version)"
|
||||||
|
|
||||||
|
clean-docs:
|
||||||
|
$(RM) docs/build
|
||||||
|
$(RM) docs/source/api/bound-methods docs/source/api/methods docs/source/api/types docs/source/telegram
|
||||||
|
|
||||||
clean-build:
|
clean-build:
|
||||||
$(RM) *.egg-info build dist
|
$(RM) *.egg-info build dist
|
||||||
|
|
||||||
|
|
@ -39,4 +43,4 @@ tag:
|
||||||
|
|
||||||
dtag:
|
dtag:
|
||||||
git tag -d $(TAG)
|
git tag -d $(TAG)
|
||||||
git push origin -d $(TAG)
|
git push origin -d $(TAG)
|
||||||
|
|
|
||||||
11
NOTICE
11
NOTICE
|
|
@ -1,17 +1,18 @@
|
||||||
Pyrogram - Telegram MTProto API Client Library for Python
|
Pyrofork - Telegram MTProto API Client Library for Python
|
||||||
Copyright (C) 2017-present Dan <https://github.com/delivrance>
|
Copyright (C) 2017-present Dan <https://github.com/delivrance>
|
||||||
|
Copyright (C) 2022-present Mayuri-Chan <https://github.com/Mayuri-Chan>
|
||||||
|
|
||||||
This file is part of Pyrogram.
|
This file is part of Pyrofork.
|
||||||
|
|
||||||
Pyrogram is free software: you can redistribute it and/or modify
|
Pyrofork is free software: you can redistribute it and/or modify
|
||||||
it under the terms of the GNU Lesser General Public License as published
|
it under the terms of the GNU Lesser General Public License as published
|
||||||
by the Free Software Foundation, either version 3 of the License, or
|
by the Free Software Foundation, either version 3 of the License, or
|
||||||
(at your option) any later version.
|
(at your option) any later version.
|
||||||
|
|
||||||
Pyrogram is distributed in the hope that it will be useful,
|
Pyrofork is distributed in the hope that it will be useful,
|
||||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
GNU Lesser General Public License for more details.
|
GNU Lesser General Public License for more details.
|
||||||
|
|
||||||
You should have received a copy of the GNU Lesser General Public License
|
You should have received a copy of the GNU Lesser General Public License
|
||||||
along with Pyrogram. If not, see <http://www.gnu.org/licenses/>.
|
along with Pyrofork. If not, see <http://www.gnu.org/licenses/>.
|
||||||
40
README.md
40
README.md
|
|
@ -1,28 +1,32 @@
|
||||||
<p align="center">
|
<p align="center">
|
||||||
<a href="https://github.com/pyrogram/pyrogram">
|
<a href="https://github.com/Mayuri-Chan/pyrofok">
|
||||||
<img src="https://docs.pyrogram.org/_static/pyrogram.png" alt="Pyrogram" width="128">
|
<img src="https://docs.pyrogram.org/_static/pyrogram.png" alt="Pyrofork" width="128">
|
||||||
</a>
|
</a>
|
||||||
<br>
|
<br>
|
||||||
<b>Telegram MTProto API Framework for Python</b>
|
<b>Telegram MTProto API Framework for Python</b>
|
||||||
<br>
|
<br>
|
||||||
<a href="https://pyrogram.org">
|
<a href="https://github.com/Mayuri-Chan">
|
||||||
Homepage
|
Homepage
|
||||||
</a>
|
</a>
|
||||||
•
|
•
|
||||||
<a href="https://docs.pyrogram.org">
|
<a href="https://pyrofork.wulan17.dev">
|
||||||
Documentation
|
Documentation
|
||||||
</a>
|
</a>
|
||||||
•
|
•
|
||||||
<a href="https://docs.pyrogram.org/releases">
|
<a href="https://github.com/Mayuri-Chan/pyrofork/issues">
|
||||||
Releases
|
Issues
|
||||||
</a>
|
</a>
|
||||||
•
|
•
|
||||||
<a href="https://t.me/pyrogram">
|
<a href="https://t.me/MayuriChan_Chat">
|
||||||
News
|
Support Chat
|
||||||
|
</a>
|
||||||
|
•
|
||||||
|
<a href="https://t.me/Pyrofork_CH">
|
||||||
|
News/Releases
|
||||||
</a>
|
</a>
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
## Pyrogram
|
## Pyrofork
|
||||||
|
|
||||||
> Elegant, modern and asynchronous Telegram MTProto API framework in Python for users and bots
|
> Elegant, modern and asynchronous Telegram MTProto API framework in Python for users and bots
|
||||||
|
|
||||||
|
|
@ -34,27 +38,25 @@ app = Client("my_account")
|
||||||
|
|
||||||
@app.on_message(filters.private)
|
@app.on_message(filters.private)
|
||||||
async def hello(client, message):
|
async def hello(client, message):
|
||||||
await message.reply("Hello from Pyrogram!")
|
await message.reply("Hello from Pyrofork!")
|
||||||
|
|
||||||
|
|
||||||
app.run()
|
app.run()
|
||||||
```
|
```
|
||||||
|
|
||||||
**Pyrogram** is a modern, elegant and asynchronous [MTProto API](https://docs.pyrogram.org/topics/mtproto-vs-botapi)
|
**Pyrofork** is a modern, elegant and asynchronous [MTProto API](https://pyrofork.wulan17.dev/main/topics/mtproto-vs-botapi)
|
||||||
framework. It enables you to easily interact with the main Telegram API through a user account (custom client) or a bot
|
framework. It enables you to easily interact with the main Telegram API through a user account (custom client) or a bot
|
||||||
identity (bot API alternative) using Python.
|
identity (bot API alternative) using Python.
|
||||||
|
|
||||||
### Support
|
### Support
|
||||||
|
|
||||||
If you'd like to support Pyrogram, you can consider:
|
If you'd like to support Pyrofork, you can consider:
|
||||||
|
|
||||||
- [Become a GitHub sponsor](https://github.com/sponsors/delivrance).
|
- [Become a GitHub sponsor](https://github.com/sponsors/Mayuri-Chan).
|
||||||
- [Become a LiberaPay patron](https://liberapay.com/delivrance).
|
|
||||||
- [Become an OpenCollective backer](https://opencollective.com/pyrogram).
|
|
||||||
|
|
||||||
### Key Features
|
### Key Features
|
||||||
|
|
||||||
- **Ready**: Install Pyrogram with pip and start building your applications right away.
|
- **Ready**: Install Pyrofork with pip and start building your applications right away.
|
||||||
- **Easy**: Makes the Telegram API simple and intuitive, while still allowing advanced usages.
|
- **Easy**: Makes the Telegram API simple and intuitive, while still allowing advanced usages.
|
||||||
- **Elegant**: Low-level details are abstracted and re-presented in a more convenient way.
|
- **Elegant**: Low-level details are abstracted and re-presented in a more convenient way.
|
||||||
- **Fast**: Boosted up by [TgCrypto](https://github.com/pyrogram/tgcrypto), a high-performance cryptography library written in C.
|
- **Fast**: Boosted up by [TgCrypto](https://github.com/pyrogram/tgcrypto), a high-performance cryptography library written in C.
|
||||||
|
|
@ -65,11 +67,11 @@ If you'd like to support Pyrogram, you can consider:
|
||||||
### Installing
|
### Installing
|
||||||
|
|
||||||
``` bash
|
``` bash
|
||||||
pip3 install pyrogram
|
pip3 install pyrofork
|
||||||
```
|
```
|
||||||
|
|
||||||
### Resources
|
### Resources
|
||||||
|
|
||||||
- Check out the docs at https://docs.pyrogram.org to learn more about Pyrogram, get started right
|
- Check out the docs at https://pyrofork.wulan17.dev to learn more about Pyrofork, get started right
|
||||||
away and discover more in-depth material for building your client applications.
|
away and discover more in-depth material for building your client applications.
|
||||||
- Join the official channel at https://t.me/pyrogram and stay tuned for news, updates and announcements.
|
- Join the official group at https://t.me/MayuriChan_Chat and stay tuned for news, updates and announcements.
|
||||||
|
|
|
||||||
87
build-docs.sh
Normal file
87
build-docs.sh
Normal file
|
|
@ -0,0 +1,87 @@
|
||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
# Check if config.sh exists
|
||||||
|
if [ -f config.sh ]; then
|
||||||
|
source config.sh
|
||||||
|
fi
|
||||||
|
|
||||||
|
function parse_parameters() {
|
||||||
|
while (($#)); do
|
||||||
|
case $1 in
|
||||||
|
all | configure | cleanup | virtualenv | build | clone | push ) action=$1 ;;
|
||||||
|
*) exit 33 ;;
|
||||||
|
esac
|
||||||
|
shift
|
||||||
|
done
|
||||||
|
}
|
||||||
|
|
||||||
|
function do_configure() {
|
||||||
|
echo "#!/bin/bash" > config.sh
|
||||||
|
echo "export VENV=\"$(pwd)/venv\"" >> config.sh
|
||||||
|
|
||||||
|
if [[ "$(echo "$GITHUB_REF" | cut -d '/' -f "1 2")" == "refs/tags" ]]; then
|
||||||
|
echo "export BRANCH=\"main\"" >> config.sh
|
||||||
|
elif [[ "$GITHUB_REF" == "refs/heads/staging" ]]; then
|
||||||
|
echo "export BRANCH=\"staging\"" >> config.sh
|
||||||
|
else
|
||||||
|
b="$(echo "$GITHUB_REF" | cut -d '/' -f '3 4')"
|
||||||
|
if [[ $(echo "$b" | cut -d '/' -f 1 ) == "dev" ]]; then
|
||||||
|
b="$(echo "$b" | cut -d '/' -f 2)"
|
||||||
|
if [[ "$b" =~ ^[0-9]\.[0-9]\.x ]]; then
|
||||||
|
echo "export BRANCH=\"$b\"" >> config.sh
|
||||||
|
else
|
||||||
|
exit 0
|
||||||
|
fi
|
||||||
|
else
|
||||||
|
exit 0
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
chmod +x config.sh
|
||||||
|
}
|
||||||
|
|
||||||
|
function do_cleanup() {
|
||||||
|
make clean
|
||||||
|
make clean-docs
|
||||||
|
}
|
||||||
|
|
||||||
|
function do_virtualenv() {
|
||||||
|
make venv
|
||||||
|
make api
|
||||||
|
"$VENV"/bin/pip install -e '.[docs]'
|
||||||
|
}
|
||||||
|
|
||||||
|
function do_build() {
|
||||||
|
cd compiler/docs || exit 1 && "$VENV"/bin/python compiler.py
|
||||||
|
cd ../.. || exit 1
|
||||||
|
"$VENV"/bin/sphinx-build -b html "docs/source" "docs/build/html" -j auto
|
||||||
|
}
|
||||||
|
|
||||||
|
function do_clone() {
|
||||||
|
git clone https://wulan17:"$DOCS_KEY"@github.com/Mayuri-Chan/pyrofork-docs.git
|
||||||
|
}
|
||||||
|
|
||||||
|
function do_push() {
|
||||||
|
cd pyrofork-docs || exit 1
|
||||||
|
mkdir -p "$BRANCH"
|
||||||
|
cd "$BRANCH" || exit 1
|
||||||
|
rm -rf _includes api genindex.html intro py-modindex.html sitemap.xml support.html topics _static faq index.html objects.inv searchindex.js start telegram
|
||||||
|
cp -r ../../docs/build/html/* .
|
||||||
|
git config --local user.name "Mayuri-Chan"
|
||||||
|
git config --local user.email "mayuri@mayuri.my.id"
|
||||||
|
git add --all
|
||||||
|
git commit -a -m "docs: $BRANCH: Update docs $(date '+%Y-%m-%d | %H:%m:%S %p %Z')" --signoff
|
||||||
|
git push -u origin --all
|
||||||
|
}
|
||||||
|
|
||||||
|
function do_all() {
|
||||||
|
do_configure
|
||||||
|
source config.sh
|
||||||
|
do_cleanup
|
||||||
|
do_virtualenv
|
||||||
|
do_build
|
||||||
|
do_clone
|
||||||
|
do_push
|
||||||
|
}
|
||||||
|
|
||||||
|
parse_parameters "$@"
|
||||||
|
do_"${action:=all}"
|
||||||
|
|
@ -1,17 +1,18 @@
|
||||||
# Pyrogram - Telegram MTProto API Client Library for Python
|
# Pyrofork - Telegram MTProto API Client Library for Python
|
||||||
# Copyright (C) 2017-present Dan <https://github.com/delivrance>
|
# Copyright (C) 2017-present Dan <https://github.com/delivrance>
|
||||||
|
# Copyright (C) 2022-present Mayuri-Chan <https://github.com/Mayuri-Chan>
|
||||||
#
|
#
|
||||||
# This file is part of Pyrogram.
|
# This file is part of Pyrofork.
|
||||||
#
|
#
|
||||||
# Pyrogram is free software: you can redistribute it and/or modify
|
# Pyrofork is free software: you can redistribute it and/or modify
|
||||||
# it under the terms of the GNU Lesser General Public License as published
|
# it under the terms of the GNU Lesser General Public License as published
|
||||||
# by the Free Software Foundation, either version 3 of the License, or
|
# by the Free Software Foundation, either version 3 of the License, or
|
||||||
# (at your option) any later version.
|
# (at your option) any later version.
|
||||||
#
|
#
|
||||||
# Pyrogram is distributed in the hope that it will be useful,
|
# Pyrofork is distributed in the hope that it will be useful,
|
||||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
# GNU Lesser General Public License for more details.
|
# GNU Lesser General Public License for more details.
|
||||||
#
|
#
|
||||||
# You should have received a copy of the GNU Lesser General Public License
|
# You should have received a copy of the GNU Lesser General Public License
|
||||||
# along with Pyrogram. If not, see <http://www.gnu.org/licenses/>.
|
# along with Pyrofork. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
|
|
||||||
|
|
@ -1,17 +1,18 @@
|
||||||
# Pyrogram - Telegram MTProto API Client Library for Python
|
# Pyrofork - Telegram MTProto API Client Library for Python
|
||||||
# Copyright (C) 2017-present Dan <https://github.com/delivrance>
|
# Copyright (C) 2017-present Dan <https://github.com/delivrance>
|
||||||
|
# Copyright (C) 2022-present Mayuri-Chan <https://github.com/Mayuri-Chan>
|
||||||
#
|
#
|
||||||
# This file is part of Pyrogram.
|
# This file is part of Pyrofork.
|
||||||
#
|
#
|
||||||
# Pyrogram is free software: you can redistribute it and/or modify
|
# Pyrofork is free software: you can redistribute it and/or modify
|
||||||
# it under the terms of the GNU Lesser General Public License as published
|
# it under the terms of the GNU Lesser General Public License as published
|
||||||
# by the Free Software Foundation, either version 3 of the License, or
|
# by the Free Software Foundation, either version 3 of the License, or
|
||||||
# (at your option) any later version.
|
# (at your option) any later version.
|
||||||
#
|
#
|
||||||
# Pyrogram is distributed in the hope that it will be useful,
|
# Pyrofork is distributed in the hope that it will be useful,
|
||||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
# GNU Lesser General Public License for more details.
|
# GNU Lesser General Public License for more details.
|
||||||
#
|
#
|
||||||
# You should have received a copy of the GNU Lesser General Public License
|
# You should have received a copy of the GNU Lesser General Public License
|
||||||
# along with Pyrogram. If not, see <http://www.gnu.org/licenses/>.
|
# along with Pyrofork. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
|
|
||||||
|
|
@ -1,20 +1,21 @@
|
||||||
# Pyrogram - Telegram MTProto API Client Library for Python
|
# Pyrofork - Telegram MTProto API Client Library for Python
|
||||||
# Copyright (C) 2017-present Dan <https://github.com/delivrance>
|
# Copyright (C) 2017-present Dan <https://github.com/delivrance>
|
||||||
|
# Copyright (C) 2022-present Mayuri-Chan <https://github.com/Mayuri-Chan>
|
||||||
#
|
#
|
||||||
# This file is part of Pyrogram.
|
# This file is part of Pyrofork.
|
||||||
#
|
#
|
||||||
# Pyrogram is free software: you can redistribute it and/or modify
|
# Pyrofork is free software: you can redistribute it and/or modify
|
||||||
# it under the terms of the GNU Lesser General Public License as published
|
# it under the terms of the GNU Lesser General Public License as published
|
||||||
# by the Free Software Foundation, either version 3 of the License, or
|
# by the Free Software Foundation, either version 3 of the License, or
|
||||||
# (at your option) any later version.
|
# (at your option) any later version.
|
||||||
#
|
#
|
||||||
# Pyrogram is distributed in the hope that it will be useful,
|
# Pyrofork is distributed in the hope that it will be useful,
|
||||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
# GNU Lesser General Public License for more details.
|
# GNU Lesser General Public License for more details.
|
||||||
#
|
#
|
||||||
# You should have received a copy of the GNU Lesser General Public License
|
# You should have received a copy of the GNU Lesser General Public License
|
||||||
# along with Pyrogram. If not, see <http://www.gnu.org/licenses/>.
|
# along with Pyrofork. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
|
||||||
import json
|
import json
|
||||||
import os
|
import os
|
||||||
|
|
@ -129,7 +130,7 @@ def get_type_hint(type: str) -> str:
|
||||||
return f"Optional[{type}] = None" if is_flag else type
|
return f"Optional[{type}] = None" if is_flag else type
|
||||||
else:
|
else:
|
||||||
ns, name = type.split(".") if "." in type else ("", type)
|
ns, name = type.split(".") if "." in type else ("", type)
|
||||||
type = f'"raw.base.' + ".".join([ns, name]).strip(".") + '"'
|
type = '"raw.base.' + ".".join([ns, name]).strip(".") + '"'
|
||||||
|
|
||||||
return f'{type}{" = None" if is_flag else ""}'
|
return f'{type}{" = None" if is_flag else ""}'
|
||||||
|
|
||||||
|
|
@ -258,11 +259,14 @@ def start(format: bool = False):
|
||||||
|
|
||||||
args = ARGS_RE.findall(line)
|
args = ARGS_RE.findall(line)
|
||||||
|
|
||||||
# Fix arg name being "self" (reserved python keyword)
|
# Fix arg name being reserved python keyword
|
||||||
for i, item in enumerate(args):
|
for i, item in enumerate(args):
|
||||||
if item[0] == "self":
|
if item[0] == "self":
|
||||||
args[i] = ("is_self", item[1])
|
args[i] = ("is_self", item[1])
|
||||||
|
|
||||||
|
if item[0] == "from":
|
||||||
|
args[i] = ("from_peer", item[1])
|
||||||
|
|
||||||
combinator = Combinator(
|
combinator = Combinator(
|
||||||
section=section,
|
section=section,
|
||||||
qualname=qualname,
|
qualname=qualname,
|
||||||
|
|
@ -426,11 +430,11 @@ def start(format: bool = False):
|
||||||
if function_docs:
|
if function_docs:
|
||||||
docstring += function_docs["desc"] + "\n"
|
docstring += function_docs["desc"] + "\n"
|
||||||
else:
|
else:
|
||||||
docstring += f"Telegram API function."
|
docstring += "Telegram API function."
|
||||||
|
|
||||||
docstring += f"\n\n Details:\n - Layer: ``{layer}``\n - ID: ``{c.id[2:].upper()}``\n\n"
|
docstring += f"\n\n Details:\n - Layer: ``{layer}``\n - ID: ``{c.id[2:].upper()}``\n\n"
|
||||||
docstring += f" Parameters:\n " + \
|
docstring += " Parameters:\n " + \
|
||||||
(f"\n ".join(docstring_args) if docstring_args else "No parameters required.\n")
|
("\n ".join(docstring_args) if docstring_args else "No parameters required.\n")
|
||||||
|
|
||||||
if c.section == "functions":
|
if c.section == "functions":
|
||||||
docstring += "\n Returns:\n " + get_docstring_arg_type(c.qualtype)
|
docstring += "\n Returns:\n " + get_docstring_arg_type(c.qualtype)
|
||||||
|
|
@ -438,12 +442,12 @@ def start(format: bool = False):
|
||||||
references, count = get_references(c.qualname, "constructors")
|
references, count = get_references(c.qualname, "constructors")
|
||||||
|
|
||||||
if references:
|
if references:
|
||||||
docstring += f"\n Functions:\n This object can be returned by " \
|
docstring += "\n Functions:\n This object can be returned by " \
|
||||||
f"{count} function{'s' if count > 1 else ''}.\n\n" \
|
f"{count} function{'s' if count > 1 else ''}.\n\n" \
|
||||||
f" .. currentmodule:: pyrogram.raw.functions\n\n" \
|
" .. currentmodule:: pyrogram.raw.functions\n\n" \
|
||||||
f" .. autosummary::\n" \
|
" .. autosummary::\n" \
|
||||||
f" :nosignatures:\n\n" \
|
" :nosignatures:\n\n" \
|
||||||
f" " + references
|
" " + references
|
||||||
|
|
||||||
write_types = read_types = "" if c.has_flags else "# No flags\n "
|
write_types = read_types = "" if c.has_flags else "# No flags\n "
|
||||||
|
|
||||||
|
|
|
||||||
File diff suppressed because it is too large
Load diff
|
|
@ -20,4 +20,4 @@ class {name}: # type: ignore
|
||||||
raise TypeError("Base types can only be used for type checking purposes: "
|
raise TypeError("Base types can only be used for type checking purposes: "
|
||||||
"you tried to use a base type instance as argument, "
|
"you tried to use a base type instance as argument, "
|
||||||
"but you need to instantiate one of its constructors instead. "
|
"but you need to instantiate one of its constructors instead. "
|
||||||
"More info: https://docs.pyrogram.org/telegram/base/{doc_name}")
|
"More info: https://pyrofork.wulan17.dev/telegram/base/{doc_name}")
|
||||||
|
|
|
||||||
|
|
@ -1,17 +1,18 @@
|
||||||
# Pyrogram - Telegram MTProto API Client Library for Python
|
# Pyrofork - Telegram MTProto API Client Library for Python
|
||||||
# Copyright (C) 2017-present Dan <https://github.com/delivrance>
|
# Copyright (C) 2017-present Dan <https://github.com/delivrance>
|
||||||
|
# Copyright (C) 2022-present Mayuri-Chan <https://github.com/Mayuri-Chan>
|
||||||
#
|
#
|
||||||
# This file is part of Pyrogram.
|
# This file is part of Pyrofork.
|
||||||
#
|
#
|
||||||
# Pyrogram is free software: you can redistribute it and/or modify
|
# Pyrofork is free software: you can redistribute it and/or modify
|
||||||
# it under the terms of the GNU Lesser General Public License as published
|
# it under the terms of the GNU Lesser General Public License as published
|
||||||
# by the Free Software Foundation, either version 3 of the License, or
|
# by the Free Software Foundation, either version 3 of the License, or
|
||||||
# (at your option) any later version.
|
# (at your option) any later version.
|
||||||
#
|
#
|
||||||
# Pyrogram is distributed in the hope that it will be useful,
|
# Pyrofork is distributed in the hope that it will be useful,
|
||||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
# GNU Lesser General Public License for more details.
|
# GNU Lesser General Public License for more details.
|
||||||
#
|
#
|
||||||
# You should have received a copy of the GNU Lesser General Public License
|
# You should have received a copy of the GNU Lesser General Public License
|
||||||
# along with Pyrogram. If not, see <http://www.gnu.org/licenses/>.
|
# along with Pyrofork. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
|
|
||||||
|
|
@ -1,20 +1,21 @@
|
||||||
# Pyrogram - Telegram MTProto API Client Library for Python
|
# Pyrofork - Telegram MTProto API Client Library for Python
|
||||||
# Copyright (C) 2017-present Dan <https://github.com/delivrance>
|
# Copyright (C) 2017-present Dan <https://github.com/delivrance>
|
||||||
|
# Copyright (C) 2022-present Mayuri-Chan <https://github.com/Mayuri-Chan>
|
||||||
#
|
#
|
||||||
# This file is part of Pyrogram.
|
# This file is part of Pyrofork.
|
||||||
#
|
#
|
||||||
# Pyrogram is free software: you can redistribute it and/or modify
|
# Pyrofork is free software: you can redistribute it and/or modify
|
||||||
# it under the terms of the GNU Lesser General Public License as published
|
# it under the terms of the GNU Lesser General Public License as published
|
||||||
# by the Free Software Foundation, either version 3 of the License, or
|
# by the Free Software Foundation, either version 3 of the License, or
|
||||||
# (at your option) any later version.
|
# (at your option) any later version.
|
||||||
#
|
#
|
||||||
# Pyrogram is distributed in the hope that it will be useful,
|
# Pyrofork is distributed in the hope that it will be useful,
|
||||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
# GNU Lesser General Public License for more details.
|
# GNU Lesser General Public License for more details.
|
||||||
#
|
#
|
||||||
# You should have received a copy of the GNU Lesser General Public License
|
# You should have received a copy of the GNU Lesser General Public License
|
||||||
# along with Pyrogram. If not, see <http://www.gnu.org/licenses/>.
|
# along with Pyrofork. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
|
||||||
import ast
|
import ast
|
||||||
import os
|
import os
|
||||||
|
|
@ -138,16 +139,35 @@ def pyrogram_api():
|
||||||
start
|
start
|
||||||
stop
|
stop
|
||||||
run
|
run
|
||||||
|
run_sync
|
||||||
restart
|
restart
|
||||||
add_handler
|
add_handler
|
||||||
remove_handler
|
remove_handler
|
||||||
stop_transmission
|
stop_transmission
|
||||||
export_session_string
|
export_session_string
|
||||||
set_parse_mode
|
set_parse_mode
|
||||||
|
ping
|
||||||
|
""",
|
||||||
|
conversation="""
|
||||||
|
Conversation
|
||||||
|
ask
|
||||||
|
listen
|
||||||
|
get_listener_matching_with_data
|
||||||
|
get_listener_matching_with_identifier_pattern
|
||||||
|
get_many_listeners_matching_with_data
|
||||||
|
get_many_listeners_matching_with_identifier_pattern
|
||||||
|
register_next_step_handler
|
||||||
|
remove_listener
|
||||||
|
stop_listener
|
||||||
|
stop_listening
|
||||||
|
wait_for_callback_query
|
||||||
|
wait_for_message
|
||||||
""",
|
""",
|
||||||
messages="""
|
messages="""
|
||||||
Messages
|
Messages
|
||||||
|
add_task_to_todo
|
||||||
send_message
|
send_message
|
||||||
|
forward_media_group
|
||||||
forward_messages
|
forward_messages
|
||||||
copy_message
|
copy_message
|
||||||
copy_media_group
|
copy_media_group
|
||||||
|
|
@ -155,16 +175,19 @@ def pyrogram_api():
|
||||||
send_audio
|
send_audio
|
||||||
send_document
|
send_document
|
||||||
send_sticker
|
send_sticker
|
||||||
|
send_todo
|
||||||
send_video
|
send_video
|
||||||
send_animation
|
send_animation
|
||||||
send_voice
|
send_voice
|
||||||
send_video_note
|
send_video_note
|
||||||
|
send_web_page
|
||||||
send_media_group
|
send_media_group
|
||||||
send_location
|
send_location
|
||||||
send_venue
|
send_venue
|
||||||
send_contact
|
send_contact
|
||||||
send_cached_media
|
send_cached_media
|
||||||
send_reaction
|
send_reaction
|
||||||
|
set_todo_tasks_completion
|
||||||
edit_message_text
|
edit_message_text
|
||||||
edit_message_caption
|
edit_message_caption
|
||||||
edit_message_media
|
edit_message_media
|
||||||
|
|
@ -175,7 +198,11 @@ def pyrogram_api():
|
||||||
edit_inline_reply_markup
|
edit_inline_reply_markup
|
||||||
send_chat_action
|
send_chat_action
|
||||||
delete_messages
|
delete_messages
|
||||||
|
delete_scheduled_messages
|
||||||
|
get_available_effects
|
||||||
get_messages
|
get_messages
|
||||||
|
get_message_read_participants
|
||||||
|
get_scheduled_messages
|
||||||
get_media_group
|
get_media_group
|
||||||
get_chat_history
|
get_chat_history
|
||||||
get_chat_history_count
|
get_chat_history_count
|
||||||
|
|
@ -189,12 +216,18 @@ def pyrogram_api():
|
||||||
search_messages_count
|
search_messages_count
|
||||||
search_global
|
search_global
|
||||||
search_global_count
|
search_global_count
|
||||||
|
search_global_hashtag_messages
|
||||||
|
search_global_hashtag_messages_count
|
||||||
download_media
|
download_media
|
||||||
stream_media
|
stream_media
|
||||||
get_discussion_message
|
get_discussion_message
|
||||||
get_discussion_replies
|
get_discussion_replies
|
||||||
get_discussion_replies_count
|
get_discussion_replies_count
|
||||||
get_custom_emoji_stickers
|
get_custom_emoji_stickers
|
||||||
|
transcribe_audio
|
||||||
|
translate_message_text
|
||||||
|
start_bot
|
||||||
|
delete_chat_history
|
||||||
""",
|
""",
|
||||||
chats="""
|
chats="""
|
||||||
Chats
|
Chats
|
||||||
|
|
@ -207,6 +240,9 @@ def pyrogram_api():
|
||||||
set_administrator_title
|
set_administrator_title
|
||||||
set_chat_photo
|
set_chat_photo
|
||||||
delete_chat_photo
|
delete_chat_photo
|
||||||
|
delete_folder
|
||||||
|
export_folder_link
|
||||||
|
update_folder
|
||||||
set_chat_title
|
set_chat_title
|
||||||
set_chat_description
|
set_chat_description
|
||||||
set_chat_permissions
|
set_chat_permissions
|
||||||
|
|
@ -219,8 +255,11 @@ def pyrogram_api():
|
||||||
get_chat_members_count
|
get_chat_members_count
|
||||||
get_dialogs
|
get_dialogs
|
||||||
get_dialogs_count
|
get_dialogs_count
|
||||||
|
get_folders
|
||||||
|
get_forum_topics
|
||||||
|
get_forum_topics_by_id
|
||||||
|
get_forum_topics_count
|
||||||
set_chat_username
|
set_chat_username
|
||||||
get_nearby_chats
|
|
||||||
archive_chats
|
archive_chats
|
||||||
unarchive_chats
|
unarchive_chats
|
||||||
add_chat_members
|
add_chat_members
|
||||||
|
|
@ -237,6 +276,19 @@ def pyrogram_api():
|
||||||
get_send_as_chats
|
get_send_as_chats
|
||||||
set_send_as_chat
|
set_send_as_chat
|
||||||
set_chat_protected_content
|
set_chat_protected_content
|
||||||
|
close_forum_topic
|
||||||
|
close_general_topic
|
||||||
|
create_forum_topic
|
||||||
|
delete_forum_topic
|
||||||
|
edit_forum_topic
|
||||||
|
edit_general_topic
|
||||||
|
hide_general_topic
|
||||||
|
reopen_forum_topic
|
||||||
|
reopen_general_topic
|
||||||
|
transfer_chat_ownership
|
||||||
|
unhide_general_topic
|
||||||
|
update_color
|
||||||
|
update_folder
|
||||||
""",
|
""",
|
||||||
users="""
|
users="""
|
||||||
Users
|
Users
|
||||||
|
|
@ -247,6 +299,8 @@ def pyrogram_api():
|
||||||
set_profile_photo
|
set_profile_photo
|
||||||
delete_profile_photos
|
delete_profile_photos
|
||||||
set_username
|
set_username
|
||||||
|
update_birthday
|
||||||
|
update_personal_chat
|
||||||
update_profile
|
update_profile
|
||||||
block_user
|
block_user
|
||||||
unblock_user
|
unblock_user
|
||||||
|
|
@ -254,6 +308,24 @@ def pyrogram_api():
|
||||||
get_default_emoji_statuses
|
get_default_emoji_statuses
|
||||||
set_emoji_status
|
set_emoji_status
|
||||||
""",
|
""",
|
||||||
|
stories="""
|
||||||
|
Stories
|
||||||
|
delete_stories
|
||||||
|
edit_story
|
||||||
|
export_story_link
|
||||||
|
forward_story
|
||||||
|
get_all_stories
|
||||||
|
get_stories
|
||||||
|
get_stories_history
|
||||||
|
get_peer_stories
|
||||||
|
send_story
|
||||||
|
""",
|
||||||
|
stickers="""
|
||||||
|
Stickers
|
||||||
|
add_sticker_to_set
|
||||||
|
create_sticker_set
|
||||||
|
get_sticker_set
|
||||||
|
""",
|
||||||
invite_links="""
|
invite_links="""
|
||||||
Invite Links
|
Invite Links
|
||||||
get_chat_invite_link
|
get_chat_invite_link
|
||||||
|
|
@ -282,6 +354,39 @@ def pyrogram_api():
|
||||||
get_contacts
|
get_contacts
|
||||||
get_contacts_count
|
get_contacts_count
|
||||||
""",
|
""",
|
||||||
|
payments="""
|
||||||
|
Payments
|
||||||
|
apply_gift_code
|
||||||
|
check_gift_code
|
||||||
|
convert_gift
|
||||||
|
create_invoice_link
|
||||||
|
get_payment_form
|
||||||
|
get_stars_transactions
|
||||||
|
get_stars_transactions_by_id
|
||||||
|
get_available_gifts
|
||||||
|
get_upgraded_gift
|
||||||
|
get_chat_gifts_count
|
||||||
|
get_chat_gifts
|
||||||
|
hide_gift
|
||||||
|
refund_star_payment
|
||||||
|
search_gifts_for_resale
|
||||||
|
send_invoice
|
||||||
|
send_paid_media
|
||||||
|
send_paid_reaction
|
||||||
|
send_payment_form
|
||||||
|
send_gift
|
||||||
|
send_resold_gift
|
||||||
|
set_gift_resale_price
|
||||||
|
set_pinned_gifts
|
||||||
|
show_gift
|
||||||
|
transfer_gift
|
||||||
|
upgrade_gift
|
||||||
|
get_stars_balance
|
||||||
|
""",
|
||||||
|
phone="""
|
||||||
|
Phone
|
||||||
|
get_call_members
|
||||||
|
""",
|
||||||
password="""
|
password="""
|
||||||
Password
|
Password
|
||||||
enable_cloud_password
|
enable_cloud_password
|
||||||
|
|
@ -306,6 +411,21 @@ def pyrogram_api():
|
||||||
set_chat_menu_button
|
set_chat_menu_button
|
||||||
get_chat_menu_button
|
get_chat_menu_button
|
||||||
answer_web_app_query
|
answer_web_app_query
|
||||||
|
get_bot_info
|
||||||
|
set_bot_info
|
||||||
|
get_collectible_item_info
|
||||||
|
get_owned_bots
|
||||||
|
get_similar_bots
|
||||||
|
""",
|
||||||
|
business="""
|
||||||
|
Telegram Business
|
||||||
|
answer_pre_checkout_query
|
||||||
|
answer_shipping_query
|
||||||
|
delete_business_messages
|
||||||
|
get_business_connection
|
||||||
|
get_business_account_gifts
|
||||||
|
get_business_account_star_balance
|
||||||
|
transfer_business_account_stars
|
||||||
""",
|
""",
|
||||||
authorization="""
|
authorization="""
|
||||||
Authorization
|
Authorization
|
||||||
|
|
@ -317,13 +437,13 @@ def pyrogram_api():
|
||||||
resend_code
|
resend_code
|
||||||
sign_in
|
sign_in
|
||||||
sign_in_bot
|
sign_in_bot
|
||||||
sign_up
|
sign_in_qrcode
|
||||||
get_password_hint
|
get_password_hint
|
||||||
check_password
|
check_password
|
||||||
send_recovery_code
|
send_recovery_code
|
||||||
recover_password
|
recover_password
|
||||||
accept_terms_of_service
|
|
||||||
log_out
|
log_out
|
||||||
|
get_active_sessions
|
||||||
""",
|
""",
|
||||||
advanced="""
|
advanced="""
|
||||||
Advanced
|
Advanced
|
||||||
|
|
@ -345,7 +465,7 @@ def pyrogram_api():
|
||||||
fmt_keys = {}
|
fmt_keys = {}
|
||||||
|
|
||||||
for k, v in categories.items():
|
for k, v in categories.items():
|
||||||
name, *methods = get_title_list(v)
|
_, *methods = get_title_list(v)
|
||||||
fmt_keys.update({k: "\n ".join("{0} <{0}>".format(m) for m in methods)})
|
fmt_keys.update({k: "\n ".join("{0} <{0}>".format(m) for m in methods)})
|
||||||
|
|
||||||
for method in methods:
|
for method in methods:
|
||||||
|
|
@ -371,7 +491,15 @@ def pyrogram_api():
|
||||||
categories = dict(
|
categories = dict(
|
||||||
users_chats="""
|
users_chats="""
|
||||||
Users & Chats
|
Users & Chats
|
||||||
|
Birthday
|
||||||
|
BusinessInfo
|
||||||
|
BusinessMessage
|
||||||
|
BusinessRecipients
|
||||||
|
BusinessSchedule
|
||||||
|
BusinessWeeklyOpen
|
||||||
|
BusinessWorkingHours
|
||||||
User
|
User
|
||||||
|
Username
|
||||||
Chat
|
Chat
|
||||||
ChatPreview
|
ChatPreview
|
||||||
ChatPhoto
|
ChatPhoto
|
||||||
|
|
@ -384,19 +512,44 @@ def pyrogram_api():
|
||||||
ChatEventFilter
|
ChatEventFilter
|
||||||
ChatMemberUpdated
|
ChatMemberUpdated
|
||||||
ChatJoinRequest
|
ChatJoinRequest
|
||||||
|
ChatJoinedByRequest
|
||||||
ChatJoiner
|
ChatJoiner
|
||||||
Dialog
|
Dialog
|
||||||
|
Folder
|
||||||
Restriction
|
Restriction
|
||||||
EmojiStatus
|
EmojiStatus
|
||||||
|
ExportedFolderLink
|
||||||
|
ForumTopic
|
||||||
|
PeerUser
|
||||||
|
PeerChannel
|
||||||
|
BotInfo
|
||||||
|
GroupCallMember
|
||||||
|
ChatColor
|
||||||
|
CollectibleItemInfo
|
||||||
|
BotVerification
|
||||||
""",
|
""",
|
||||||
messages_media="""
|
messages_media="""
|
||||||
Messages & Media
|
Messages & Media
|
||||||
Message
|
Message
|
||||||
MessageEntity
|
MessageEntity
|
||||||
|
MessageOriginChannel
|
||||||
|
MessageOriginChat
|
||||||
|
MessageOriginHiddenUser
|
||||||
|
MessageOriginImport
|
||||||
|
MessageOriginUser
|
||||||
|
MessageOrigin
|
||||||
Photo
|
Photo
|
||||||
Thumbnail
|
Thumbnail
|
||||||
|
TodoList
|
||||||
|
TodoTask
|
||||||
|
TodoTasksAdded
|
||||||
|
TodoTasksCompleted
|
||||||
|
TodoTasksIncompleted
|
||||||
Audio
|
Audio
|
||||||
|
AvailableEffect
|
||||||
Document
|
Document
|
||||||
|
ExternalReplyInfo
|
||||||
|
AlternativeVideo
|
||||||
Animation
|
Animation
|
||||||
Video
|
Video
|
||||||
Voice
|
Voice
|
||||||
|
|
@ -405,8 +558,20 @@ def pyrogram_api():
|
||||||
Location
|
Location
|
||||||
Venue
|
Venue
|
||||||
Sticker
|
Sticker
|
||||||
|
StickerSet
|
||||||
Game
|
Game
|
||||||
|
Gift
|
||||||
|
GiftAttribute
|
||||||
|
Giveaway
|
||||||
|
GiveawayLaunched
|
||||||
|
GiveawayResult
|
||||||
|
MessageStory
|
||||||
WebPage
|
WebPage
|
||||||
|
WebPageEmpty
|
||||||
|
WebPagePreview
|
||||||
|
TranscribedAudio
|
||||||
|
TranslatedText
|
||||||
|
TextQuote
|
||||||
Poll
|
Poll
|
||||||
PollOption
|
PollOption
|
||||||
Dice
|
Dice
|
||||||
|
|
@ -417,7 +582,70 @@ def pyrogram_api():
|
||||||
VideoChatMembersInvited
|
VideoChatMembersInvited
|
||||||
WebAppData
|
WebAppData
|
||||||
MessageReactions
|
MessageReactions
|
||||||
|
MessageReactor
|
||||||
ChatReactions
|
ChatReactions
|
||||||
|
ForumTopicCreated
|
||||||
|
ForumTopicEdited
|
||||||
|
ForumTopicClosed
|
||||||
|
ForumTopicDeleted
|
||||||
|
ForumTopicReopened
|
||||||
|
GeneralTopicHidden
|
||||||
|
GeneralTopicUnhidden
|
||||||
|
Reaction
|
||||||
|
MessageReactionUpdated
|
||||||
|
MessageReactionCountUpdated
|
||||||
|
ExportedStoryLink
|
||||||
|
ChatTheme
|
||||||
|
ChatWallpaper
|
||||||
|
ContactRegistered
|
||||||
|
ReadParticipant
|
||||||
|
ScreenshotTaken
|
||||||
|
Wallpaper
|
||||||
|
WallpaperSettings
|
||||||
|
""",
|
||||||
|
stories="""
|
||||||
|
Stories
|
||||||
|
Story
|
||||||
|
StoryDeleted
|
||||||
|
StoryForwardHeader
|
||||||
|
StorySkipped
|
||||||
|
StoriesPrivacyRules
|
||||||
|
StoryViews
|
||||||
|
MediaArea
|
||||||
|
MediaAreaChannelPost
|
||||||
|
MediaAreaCoordinates
|
||||||
|
InputMediaArea
|
||||||
|
InputMediaAreaChannelPost
|
||||||
|
""",
|
||||||
|
payment="""
|
||||||
|
Payment
|
||||||
|
CheckedGiftCode
|
||||||
|
ExtendedMediaPreview
|
||||||
|
GiftCode
|
||||||
|
GiftedPremium
|
||||||
|
InputStarsTransaction
|
||||||
|
Invoice
|
||||||
|
LabeledPrice
|
||||||
|
PaidMedia
|
||||||
|
PaidMessagePriceChanged
|
||||||
|
PaymentForm
|
||||||
|
PaymentInfo
|
||||||
|
PaymentRefunded
|
||||||
|
PurchasedPaidMedia
|
||||||
|
StarsStatus
|
||||||
|
StarsTransaction
|
||||||
|
SuccessfulPayment
|
||||||
|
""",
|
||||||
|
pyromod="""
|
||||||
|
Pyromod
|
||||||
|
Identifier
|
||||||
|
Listener
|
||||||
|
""",
|
||||||
|
bot="""
|
||||||
|
Bot
|
||||||
|
BotAllowed
|
||||||
|
BotApp
|
||||||
|
BotBusinessConnection
|
||||||
""",
|
""",
|
||||||
bot_keyboards="""
|
bot_keyboards="""
|
||||||
Bot keyboards
|
Bot keyboards
|
||||||
|
|
@ -426,6 +654,13 @@ def pyrogram_api():
|
||||||
ReplyKeyboardRemove
|
ReplyKeyboardRemove
|
||||||
InlineKeyboardMarkup
|
InlineKeyboardMarkup
|
||||||
InlineKeyboardButton
|
InlineKeyboardButton
|
||||||
|
InlineKeyboardButtonBuy
|
||||||
|
RequestPeerTypeChannel
|
||||||
|
RequestPeerTypeChat
|
||||||
|
RequestPeerTypeUser
|
||||||
|
RequestedChats
|
||||||
|
RequestedChat
|
||||||
|
RequestedUser
|
||||||
LoginUrl
|
LoginUrl
|
||||||
ForceReply
|
ForceReply
|
||||||
CallbackQuery
|
CallbackQuery
|
||||||
|
|
@ -450,6 +685,13 @@ def pyrogram_api():
|
||||||
BotCommandScopeChatAdministrators
|
BotCommandScopeChatAdministrators
|
||||||
BotCommandScopeChatMember
|
BotCommandScopeChatMember
|
||||||
""",
|
""",
|
||||||
|
business="""
|
||||||
|
Telegram Business
|
||||||
|
PreCheckoutQuery
|
||||||
|
ShippingAddress
|
||||||
|
ShippingOption
|
||||||
|
ShippingQuery
|
||||||
|
""",
|
||||||
input_media="""
|
input_media="""
|
||||||
Input Media
|
Input Media
|
||||||
InputMedia
|
InputMedia
|
||||||
|
|
@ -483,13 +725,32 @@ def pyrogram_api():
|
||||||
InlineQueryResultVoice
|
InlineQueryResultVoice
|
||||||
ChosenInlineResult
|
ChosenInlineResult
|
||||||
""",
|
""",
|
||||||
|
pre_checkout_query="""
|
||||||
|
PreCheckoutQuery
|
||||||
|
PreCheckoutQuery.answer
|
||||||
|
""",
|
||||||
|
shipping_query="""
|
||||||
|
ShippingQuery
|
||||||
|
ShippingQuery.answer
|
||||||
|
""",
|
||||||
input_message_content="""
|
input_message_content="""
|
||||||
InputMessageContent
|
InputMessageContent
|
||||||
InputMessageContent
|
InputMessageContent
|
||||||
|
InputReplyToMessage
|
||||||
|
InputReplyToMonoforum
|
||||||
|
InputReplyToStory
|
||||||
InputTextMessageContent
|
InputTextMessageContent
|
||||||
|
InputLocationMessageContent
|
||||||
|
InputVenueMessageContent
|
||||||
|
InputContactMessageContent
|
||||||
|
InputInvoiceMessageContent
|
||||||
|
InputTodoTask
|
||||||
""",
|
""",
|
||||||
authorization="""
|
authorization="""
|
||||||
Authorization
|
Authorization
|
||||||
|
ActiveSession
|
||||||
|
ActiveSessions
|
||||||
|
LoginToken
|
||||||
SentCode
|
SentCode
|
||||||
TermsOfService
|
TermsOfService
|
||||||
"""
|
"""
|
||||||
|
|
@ -507,7 +768,7 @@ def pyrogram_api():
|
||||||
fmt_keys = {}
|
fmt_keys = {}
|
||||||
|
|
||||||
for k, v in categories.items():
|
for k, v in categories.items():
|
||||||
name, *types = get_title_list(v)
|
_, *types = get_title_list(v)
|
||||||
|
|
||||||
fmt_keys.update({k: "\n ".join(types)})
|
fmt_keys.update({k: "\n ".join(types)})
|
||||||
|
|
||||||
|
|
@ -526,6 +787,7 @@ def pyrogram_api():
|
||||||
categories = dict(
|
categories = dict(
|
||||||
message="""
|
message="""
|
||||||
Message
|
Message
|
||||||
|
Message.ask
|
||||||
Message.click
|
Message.click
|
||||||
Message.delete
|
Message.delete
|
||||||
Message.download
|
Message.download
|
||||||
|
|
@ -557,11 +819,18 @@ def pyrogram_api():
|
||||||
Message.reply_video
|
Message.reply_video
|
||||||
Message.reply_video_note
|
Message.reply_video_note
|
||||||
Message.reply_voice
|
Message.reply_voice
|
||||||
|
Message.reply_web_page
|
||||||
Message.get_media_group
|
Message.get_media_group
|
||||||
Message.react
|
Message.react
|
||||||
|
Message.transcribe
|
||||||
|
Message.translate
|
||||||
|
Message.wait_for_click
|
||||||
""",
|
""",
|
||||||
chat="""
|
chat="""
|
||||||
Chat
|
Chat
|
||||||
|
Chat.ask
|
||||||
|
Chat.listen
|
||||||
|
Chat.stop_listening
|
||||||
Chat.archive
|
Chat.archive
|
||||||
Chat.unarchive
|
Chat.unarchive
|
||||||
Chat.set_title
|
Chat.set_title
|
||||||
|
|
@ -582,11 +851,57 @@ def pyrogram_api():
|
||||||
""",
|
""",
|
||||||
user="""
|
user="""
|
||||||
User
|
User
|
||||||
|
User.ask
|
||||||
|
User.listen
|
||||||
|
User.stop_listening
|
||||||
User.archive
|
User.archive
|
||||||
User.unarchive
|
User.unarchive
|
||||||
User.block
|
User.block
|
||||||
User.unblock
|
User.unblock
|
||||||
""",
|
""",
|
||||||
|
story="""
|
||||||
|
Story
|
||||||
|
Story.delete
|
||||||
|
Story.download
|
||||||
|
Story.edit
|
||||||
|
Story.edit_animation
|
||||||
|
Story.edit_caption
|
||||||
|
Story.edit_photo
|
||||||
|
Story.edit_privacy
|
||||||
|
Story.edit_video
|
||||||
|
Story.export_link
|
||||||
|
Story.forward
|
||||||
|
Story.reply_text
|
||||||
|
Story.reply_animation
|
||||||
|
Story.reply_audio
|
||||||
|
Story.reply_cached_media
|
||||||
|
Story.reply_media_group
|
||||||
|
Story.reply_photo
|
||||||
|
Story.reply_sticker
|
||||||
|
Story.reply_video
|
||||||
|
Story.reply_video_note
|
||||||
|
Story.reply_voice
|
||||||
|
""",
|
||||||
|
folder="""
|
||||||
|
Folder
|
||||||
|
Folder.delete
|
||||||
|
Folder.update
|
||||||
|
Folder.include_chat
|
||||||
|
Folder.exclude_chat
|
||||||
|
Folder.update_color
|
||||||
|
Folder.pin_chat
|
||||||
|
Folder.remove_chat
|
||||||
|
Folder.export_link
|
||||||
|
""",
|
||||||
|
gift="""
|
||||||
|
Gift
|
||||||
|
Gift.show
|
||||||
|
Gift.hide
|
||||||
|
Gift.convert
|
||||||
|
Gift.upgrade
|
||||||
|
Gift.transfer
|
||||||
|
Gift.wear
|
||||||
|
""",
|
||||||
callback_query="""
|
callback_query="""
|
||||||
Callback Query
|
Callback Query
|
||||||
CallbackQuery.answer
|
CallbackQuery.answer
|
||||||
|
|
@ -599,6 +914,14 @@ def pyrogram_api():
|
||||||
InlineQuery
|
InlineQuery
|
||||||
InlineQuery.answer
|
InlineQuery.answer
|
||||||
""",
|
""",
|
||||||
|
pre_checkout_query="""
|
||||||
|
PreCheckoutQuery
|
||||||
|
PreCheckoutQuery.answer
|
||||||
|
""",
|
||||||
|
shipping_query="""
|
||||||
|
ShippingQuery
|
||||||
|
ShippingQuery.answer
|
||||||
|
""",
|
||||||
chat_join_request="""
|
chat_join_request="""
|
||||||
ChatJoinRequest
|
ChatJoinRequest
|
||||||
ChatJoinRequest.approve
|
ChatJoinRequest.approve
|
||||||
|
|
|
||||||
66
compiler/docs/template/bound-methods.rst
vendored
66
compiler/docs/template/bound-methods.rst
vendored
|
|
@ -1,7 +1,7 @@
|
||||||
Bound Methods
|
Bound Methods
|
||||||
=============
|
=============
|
||||||
|
|
||||||
Some Pyrogram types define what are called bound methods. Bound methods are functions attached to a type which are
|
Some Pyrofork types define what are called bound methods. Bound methods are functions attached to a type which are
|
||||||
accessed via an instance of that type. They make it even easier to call specific methods by automatically inferring
|
accessed via an instance of that type. They make it even easier to call specific methods by automatically inferring
|
||||||
some of the required arguments.
|
some of the required arguments.
|
||||||
|
|
||||||
|
|
@ -36,6 +36,19 @@ Message
|
||||||
|
|
||||||
{message_toctree}
|
{message_toctree}
|
||||||
|
|
||||||
|
Story
|
||||||
|
-----
|
||||||
|
|
||||||
|
.. hlist::
|
||||||
|
:columns: 3
|
||||||
|
|
||||||
|
{story_hlist}
|
||||||
|
|
||||||
|
.. toctree::
|
||||||
|
:hidden:
|
||||||
|
|
||||||
|
{story_toctree}
|
||||||
|
|
||||||
Chat
|
Chat
|
||||||
----
|
----
|
||||||
|
|
||||||
|
|
@ -88,6 +101,32 @@ InlineQuery
|
||||||
|
|
||||||
{inline_query_toctree}
|
{inline_query_toctree}
|
||||||
|
|
||||||
|
PreCheckoutQuery
|
||||||
|
----------------
|
||||||
|
|
||||||
|
.. hlist::
|
||||||
|
:columns: 2
|
||||||
|
|
||||||
|
{pre_checkout_query_hlist}
|
||||||
|
|
||||||
|
.. toctree::
|
||||||
|
:hidden:
|
||||||
|
|
||||||
|
{pre_checkout_query_toctree}
|
||||||
|
|
||||||
|
ShippingQuery
|
||||||
|
-------------
|
||||||
|
|
||||||
|
.. hlist::
|
||||||
|
:columns: 2
|
||||||
|
|
||||||
|
{shipping_query_hlist}
|
||||||
|
|
||||||
|
.. toctree::
|
||||||
|
:hidden:
|
||||||
|
|
||||||
|
{shipping_query_toctree}
|
||||||
|
|
||||||
ChatJoinRequest
|
ChatJoinRequest
|
||||||
---------------
|
---------------
|
||||||
|
|
||||||
|
|
@ -101,3 +140,28 @@ ChatJoinRequest
|
||||||
|
|
||||||
{chat_join_request_toctree}
|
{chat_join_request_toctree}
|
||||||
|
|
||||||
|
Folder
|
||||||
|
---------------
|
||||||
|
|
||||||
|
.. hlist::
|
||||||
|
:columns: 2
|
||||||
|
|
||||||
|
{folder_hlist}
|
||||||
|
|
||||||
|
.. toctree::
|
||||||
|
:hidden:
|
||||||
|
|
||||||
|
{folder_toctree}
|
||||||
|
|
||||||
|
Gift
|
||||||
|
---------------
|
||||||
|
|
||||||
|
.. hlist::
|
||||||
|
:columns: 2
|
||||||
|
|
||||||
|
{gift_hlist}
|
||||||
|
|
||||||
|
.. toctree::
|
||||||
|
:hidden:
|
||||||
|
|
||||||
|
{gift_toctree}
|
||||||
|
|
|
||||||
69
compiler/docs/template/methods.rst
vendored
69
compiler/docs/template/methods.rst
vendored
|
|
@ -1,7 +1,7 @@
|
||||||
Available Methods
|
Available Methods
|
||||||
=================
|
=================
|
||||||
|
|
||||||
This page is about Pyrogram methods. All the methods listed here are bound to a :class:`~pyrogram.Client` instance,
|
This page is about Pyrofork methods. All the methods listed here are bound to a :class:`~pyrogram.Client` instance,
|
||||||
except for :meth:`~pyrogram.idle()` and :meth:`~pyrogram.compose()`, which are special functions that can be found in
|
except for :meth:`~pyrogram.idle()` and :meth:`~pyrogram.compose()`, which are special functions that can be found in
|
||||||
the main package directly.
|
the main package directly.
|
||||||
|
|
||||||
|
|
@ -47,6 +47,19 @@ Utilities
|
||||||
|
|
||||||
.. currentmodule:: pyrogram.Client
|
.. currentmodule:: pyrogram.Client
|
||||||
|
|
||||||
|
Conversation
|
||||||
|
------------
|
||||||
|
|
||||||
|
.. autosummary::
|
||||||
|
:nosignatures:
|
||||||
|
|
||||||
|
{conversation}
|
||||||
|
|
||||||
|
.. toctree::
|
||||||
|
:hidden:
|
||||||
|
|
||||||
|
{conversation}
|
||||||
|
|
||||||
Messages
|
Messages
|
||||||
--------
|
--------
|
||||||
|
|
||||||
|
|
@ -60,6 +73,19 @@ Messages
|
||||||
|
|
||||||
{messages}
|
{messages}
|
||||||
|
|
||||||
|
Stories
|
||||||
|
-------
|
||||||
|
|
||||||
|
.. autosummary::
|
||||||
|
:nosignatures:
|
||||||
|
|
||||||
|
{stories}
|
||||||
|
|
||||||
|
.. toctree::
|
||||||
|
:hidden:
|
||||||
|
|
||||||
|
{stories}
|
||||||
|
|
||||||
Chats
|
Chats
|
||||||
-----
|
-----
|
||||||
|
|
||||||
|
|
@ -73,6 +99,32 @@ Chats
|
||||||
|
|
||||||
{chats}
|
{chats}
|
||||||
|
|
||||||
|
Stickers
|
||||||
|
--------
|
||||||
|
|
||||||
|
.. autosummary::
|
||||||
|
:nosignatures:
|
||||||
|
|
||||||
|
{stickers}
|
||||||
|
|
||||||
|
.. toctree::
|
||||||
|
:hidden:
|
||||||
|
|
||||||
|
{stickers}
|
||||||
|
|
||||||
|
Telegram Business
|
||||||
|
-------------
|
||||||
|
|
||||||
|
.. autosummary::
|
||||||
|
:nosignatures:
|
||||||
|
|
||||||
|
{business}
|
||||||
|
|
||||||
|
.. toctree::
|
||||||
|
:hidden:
|
||||||
|
|
||||||
|
{business}
|
||||||
|
|
||||||
Users
|
Users
|
||||||
-----
|
-----
|
||||||
|
|
||||||
|
|
@ -138,6 +190,19 @@ Bots
|
||||||
|
|
||||||
{bots}
|
{bots}
|
||||||
|
|
||||||
|
Payments
|
||||||
|
----
|
||||||
|
|
||||||
|
.. autosummary::
|
||||||
|
:nosignatures:
|
||||||
|
|
||||||
|
{payments}
|
||||||
|
|
||||||
|
.. toctree::
|
||||||
|
:hidden:
|
||||||
|
|
||||||
|
{payments}
|
||||||
|
|
||||||
Authorization
|
Authorization
|
||||||
-------------
|
-------------
|
||||||
|
|
||||||
|
|
@ -165,4 +230,4 @@ Learn more about how to use the raw API at :doc:`Advanced Usage <../../topics/ad
|
||||||
.. toctree::
|
.. toctree::
|
||||||
:hidden:
|
:hidden:
|
||||||
|
|
||||||
{advanced}
|
{advanced}
|
||||||
|
|
|
||||||
95
compiler/docs/template/types.rst
vendored
95
compiler/docs/template/types.rst
vendored
|
|
@ -1,7 +1,7 @@
|
||||||
Available Types
|
Available Types
|
||||||
===============
|
===============
|
||||||
|
|
||||||
This page is about Pyrogram Types. All types listed here are available through the ``pyrogram.types`` package.
|
This page is about Pyrofork Types. All types listed here are available through the ``pyrogram.types`` package.
|
||||||
Unless required as argument to a client method, most of the types don't need to be manually instantiated because they
|
Unless required as argument to a client method, most of the types don't need to be manually instantiated because they
|
||||||
are only returned by other methods. You also don't need to import them, unless you want to type-hint your variables.
|
are only returned by other methods. You also don't need to import them, unless you want to type-hint your variables.
|
||||||
|
|
||||||
|
|
@ -47,6 +47,45 @@ Messages & Media
|
||||||
|
|
||||||
{messages_media}
|
{messages_media}
|
||||||
|
|
||||||
|
Stories
|
||||||
|
-------
|
||||||
|
|
||||||
|
.. autosummary::
|
||||||
|
:nosignatures:
|
||||||
|
|
||||||
|
{stories}
|
||||||
|
|
||||||
|
.. toctree::
|
||||||
|
:hidden:
|
||||||
|
|
||||||
|
{stories}
|
||||||
|
|
||||||
|
Pyromod
|
||||||
|
-------
|
||||||
|
|
||||||
|
.. autosummary::
|
||||||
|
:nosignatures:
|
||||||
|
|
||||||
|
{pyromod}
|
||||||
|
|
||||||
|
.. toctree::
|
||||||
|
:hidden:
|
||||||
|
|
||||||
|
{pyromod}
|
||||||
|
|
||||||
|
Bot
|
||||||
|
---
|
||||||
|
|
||||||
|
.. autosummary::
|
||||||
|
:nosignatures:
|
||||||
|
|
||||||
|
{bot}
|
||||||
|
|
||||||
|
.. toctree::
|
||||||
|
:hidden:
|
||||||
|
|
||||||
|
{bot}
|
||||||
|
|
||||||
Bot keyboards
|
Bot keyboards
|
||||||
-------------
|
-------------
|
||||||
|
|
||||||
|
|
@ -73,6 +112,19 @@ Bot commands
|
||||||
|
|
||||||
{bot_commands}
|
{bot_commands}
|
||||||
|
|
||||||
|
Telegram Business
|
||||||
|
-------------
|
||||||
|
|
||||||
|
.. autosummary::
|
||||||
|
:nosignatures:
|
||||||
|
|
||||||
|
{business}
|
||||||
|
|
||||||
|
.. toctree::
|
||||||
|
:hidden:
|
||||||
|
|
||||||
|
{business}
|
||||||
|
|
||||||
Input Media
|
Input Media
|
||||||
-----------
|
-----------
|
||||||
|
|
||||||
|
|
@ -112,6 +164,45 @@ InputMessageContent
|
||||||
|
|
||||||
{input_message_content}
|
{input_message_content}
|
||||||
|
|
||||||
|
ShippingQuery
|
||||||
|
-------------------
|
||||||
|
|
||||||
|
.. autosummary::
|
||||||
|
:nosignatures:
|
||||||
|
|
||||||
|
{shipping_query}
|
||||||
|
|
||||||
|
.. toctree::
|
||||||
|
:hidden:
|
||||||
|
|
||||||
|
{shipping_query}
|
||||||
|
|
||||||
|
PreCheckoutQuery
|
||||||
|
-------------------
|
||||||
|
|
||||||
|
.. autosummary::
|
||||||
|
:nosignatures:
|
||||||
|
|
||||||
|
{pre_checkout_query}
|
||||||
|
|
||||||
|
.. toctree::
|
||||||
|
:hidden:
|
||||||
|
|
||||||
|
{pre_checkout_query}
|
||||||
|
|
||||||
|
Payment
|
||||||
|
-------------------
|
||||||
|
|
||||||
|
.. autosummary::
|
||||||
|
:nosignatures:
|
||||||
|
|
||||||
|
{payment}
|
||||||
|
|
||||||
|
.. toctree::
|
||||||
|
:hidden:
|
||||||
|
|
||||||
|
{payment}
|
||||||
|
|
||||||
Authorization
|
Authorization
|
||||||
-------------
|
-------------
|
||||||
|
|
||||||
|
|
@ -123,4 +214,4 @@ Authorization
|
||||||
.. toctree::
|
.. toctree::
|
||||||
:hidden:
|
:hidden:
|
||||||
|
|
||||||
{authorization}
|
{authorization}
|
||||||
|
|
|
||||||
|
|
@ -1,17 +1,18 @@
|
||||||
# Pyrogram - Telegram MTProto API Client Library for Python
|
# Pyrofork - Telegram MTProto API Client Library for Python
|
||||||
# Copyright (C) 2017-present Dan <https://github.com/delivrance>
|
# Copyright (C) 2017-present Dan <https://github.com/delivrance>
|
||||||
|
# Copyright (C) 2022-present Mayuri-Chan <https://github.com/Mayuri-Chan>
|
||||||
#
|
#
|
||||||
# This file is part of Pyrogram.
|
# This file is part of Pyrofork.
|
||||||
#
|
#
|
||||||
# Pyrogram is free software: you can redistribute it and/or modify
|
# Pyrofork is free software: you can redistribute it and/or modify
|
||||||
# it under the terms of the GNU Lesser General Public License as published
|
# it under the terms of the GNU Lesser General Public License as published
|
||||||
# by the Free Software Foundation, either version 3 of the License, or
|
# by the Free Software Foundation, either version 3 of the License, or
|
||||||
# (at your option) any later version.
|
# (at your option) any later version.
|
||||||
#
|
#
|
||||||
# Pyrogram is distributed in the hope that it will be useful,
|
# Pyrofork is distributed in the hope that it will be useful,
|
||||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
# GNU Lesser General Public License for more details.
|
# GNU Lesser General Public License for more details.
|
||||||
#
|
#
|
||||||
# You should have received a copy of the GNU Lesser General Public License
|
# You should have received a copy of the GNU Lesser General Public License
|
||||||
# along with Pyrogram. If not, see <http://www.gnu.org/licenses/>.
|
# along with Pyrofork. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
|
|
||||||
|
|
@ -1,21 +1,23 @@
|
||||||
# Pyrogram - Telegram MTProto API Client Library for Python
|
# Pyrofork - Telegram MTProto API Client Library for Python
|
||||||
# Copyright (C) 2017-present Dan <https://github.com/delivrance>
|
# Copyright (C) 2017-present Dan <https://github.com/delivrance>
|
||||||
|
# Copyright (C) 2022-present Mayuri-Chan <https://github.com/Mayuri-Chan>
|
||||||
#
|
#
|
||||||
# This file is part of Pyrogram.
|
# This file is part of Pyrofork.
|
||||||
#
|
#
|
||||||
# Pyrogram is free software: you can redistribute it and/or modify
|
# Pyrofork is free software: you can redistribute it and/or modify
|
||||||
# it under the terms of the GNU Lesser General Public License as published
|
# it under the terms of the GNU Lesser General Public License as published
|
||||||
# by the Free Software Foundation, either version 3 of the License, or
|
# by the Free Software Foundation, either version 3 of the License, or
|
||||||
# (at your option) any later version.
|
# (at your option) any later version.
|
||||||
#
|
#
|
||||||
# Pyrogram is distributed in the hope that it will be useful,
|
# Pyrofork is distributed in the hope that it will be useful,
|
||||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
# GNU Lesser General Public License for more details.
|
# GNU Lesser General Public License for more details.
|
||||||
#
|
#
|
||||||
# You should have received a copy of the GNU Lesser General Public License
|
# You should have received a copy of the GNU Lesser General Public License
|
||||||
# along with Pyrogram. If not, see <http://www.gnu.org/licenses/>.
|
# along with Pyrofork. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
|
||||||
|
import ast
|
||||||
import csv
|
import csv
|
||||||
import os
|
import os
|
||||||
import re
|
import re
|
||||||
|
|
@ -36,6 +38,13 @@ def caml(s):
|
||||||
s = snek(s).split("_")
|
s = snek(s).split("_")
|
||||||
return "".join([str(i.title()) for i in s])
|
return "".join([str(i.title()) for i in s])
|
||||||
|
|
||||||
|
def get_classes_from_file(file_path):
|
||||||
|
with open(file_path, "r", encoding="utf-8") as f:
|
||||||
|
tree = ast.parse(f.read())
|
||||||
|
|
||||||
|
classes = [node.name for node in ast.walk(tree) if isinstance(node, ast.ClassDef)]
|
||||||
|
return classes
|
||||||
|
|
||||||
|
|
||||||
def start():
|
def start():
|
||||||
shutil.rmtree(DEST, ignore_errors=True)
|
shutil.rmtree(DEST, ignore_errors=True)
|
||||||
|
|
@ -126,6 +135,20 @@ def start():
|
||||||
f_all.write(" },\n")
|
f_all.write(" },\n")
|
||||||
|
|
||||||
f_all.write("}\n")
|
f_all.write("}\n")
|
||||||
|
with open(init, "a", encoding="utf-8") as f_init:
|
||||||
|
f_init.write("\n")
|
||||||
|
all_classes = []
|
||||||
|
for i in files:
|
||||||
|
code, name = re.search(r"(\d+)_([A-Z_]+)", i).groups()
|
||||||
|
classes = get_classes_from_file("{}/{}_{}.py".format(DEST, name.lower(), code))
|
||||||
|
for j in classes:
|
||||||
|
if j not in ["BaseException", "Exception", "PyrogramException"]:
|
||||||
|
all_classes.append(j)
|
||||||
|
f_init.write("__all__ = [\n")
|
||||||
|
all_classes = sorted(set(all_classes))
|
||||||
|
for i in all_classes:
|
||||||
|
f_init.write(" \"{}\",\n".format(i))
|
||||||
|
f_init.write("]\n")
|
||||||
|
|
||||||
with open("{}/all.py".format(DEST), encoding="utf-8") as f:
|
with open("{}/all.py".format(DEST), encoding="utf-8") as f:
|
||||||
content = f.read()
|
content = f.read()
|
||||||
|
|
|
||||||
|
|
@ -1,20 +1,21 @@
|
||||||
# Pyrogram - Telegram MTProto API Client Library for Python
|
# Pyrofork - Telegram MTProto API Client Library for Python
|
||||||
# Copyright (C) 2017-present Dan <https://github.com/delivrance>
|
# Copyright (C) 2017-present Dan <https://github.com/delivrance>
|
||||||
|
# Copyright (C) 2022-present Mayuri-Chan <https://github.com/Mayuri-Chan>
|
||||||
#
|
#
|
||||||
# This file is part of Pyrogram.
|
# This file is part of Pyrofork.
|
||||||
#
|
#
|
||||||
# Pyrogram is free software: you can redistribute it and/or modify
|
# Pyrofork is free software: you can redistribute it and/or modify
|
||||||
# it under the terms of the GNU Lesser General Public License as published
|
# it under the terms of the GNU Lesser General Public License as published
|
||||||
# by the Free Software Foundation, either version 3 of the License, or
|
# by the Free Software Foundation, either version 3 of the License, or
|
||||||
# (at your option) any later version.
|
# (at your option) any later version.
|
||||||
#
|
#
|
||||||
# Pyrogram is distributed in the hope that it will be useful,
|
# Pyrofork is distributed in the hope that it will be useful,
|
||||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
# GNU Lesser General Public License for more details.
|
# GNU Lesser General Public License for more details.
|
||||||
#
|
#
|
||||||
# You should have received a copy of the GNU Lesser General Public License
|
# You should have received a copy of the GNU Lesser General Public License
|
||||||
# along with Pyrogram. If not, see <http://www.gnu.org/licenses/>.
|
# along with Pyrofork. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
|
||||||
import csv
|
import csv
|
||||||
from pathlib import Path
|
from pathlib import Path
|
||||||
|
|
|
||||||
|
|
@ -2,57 +2,81 @@ id message
|
||||||
ABOUT_TOO_LONG The provided about/bio text is too long
|
ABOUT_TOO_LONG The provided about/bio text is too long
|
||||||
ACCESS_TOKEN_EXPIRED The bot token has expired
|
ACCESS_TOKEN_EXPIRED The bot token has expired
|
||||||
ACCESS_TOKEN_INVALID The bot access token is invalid
|
ACCESS_TOKEN_INVALID The bot access token is invalid
|
||||||
|
ADDRESS_INVALID The specified geopoint address is invalid.
|
||||||
ADMINS_TOO_MUCH The chat has too many administrators
|
ADMINS_TOO_MUCH The chat has too many administrators
|
||||||
|
ADMIN_ID_INVALID The specified admin ID is invalid
|
||||||
ADMIN_RANK_EMOJI_NOT_ALLOWED Emoji are not allowed in custom administrator titles
|
ADMIN_RANK_EMOJI_NOT_ALLOWED Emoji are not allowed in custom administrator titles
|
||||||
ADMIN_RANK_INVALID The custom administrator title is invalid or too long
|
ADMIN_RANK_INVALID The custom administrator title is invalid or too long
|
||||||
|
ADMIN_RIGHTS_EMPTY The chatAdminRights constructor passed in keyboardButtonRequestPeer.peer_type.user_admin_rights has no rights set (i.e. flags is 0).
|
||||||
ALBUM_PHOTOS_TOO_MANY Too many photos were included in the album
|
ALBUM_PHOTOS_TOO_MANY Too many photos were included in the album
|
||||||
API_ID_INVALID The api_id/api_hash combination is invalid
|
API_ID_INVALID The api_id/api_hash combination is invalid
|
||||||
API_ID_PUBLISHED_FLOOD You are using an API key that is limited on the server side because it was published somewhere
|
API_ID_PUBLISHED_FLOOD You are using an API key that is limited on the server side because it was published somewhere
|
||||||
ARTICLE_TITLE_EMPTY The article title is empty
|
ARTICLE_TITLE_EMPTY The article title is empty
|
||||||
|
AUDIO_CONTENT_URL_EMPTY The remote URL specified in the content field is empty
|
||||||
AUDIO_TITLE_EMPTY The title attribute of the audio is empty
|
AUDIO_TITLE_EMPTY The title attribute of the audio is empty
|
||||||
AUTH_BYTES_INVALID The authorization bytes are invalid
|
AUTH_BYTES_INVALID The authorization bytes are invalid
|
||||||
AUTH_TOKEN_ALREADY_ACCEPTED The authorization token was already used
|
AUTH_TOKEN_ALREADY_ACCEPTED The authorization token was already used
|
||||||
|
AUTH_TOKEN_EXCEPTION An error occurred while importing the auth token
|
||||||
AUTH_TOKEN_EXPIRED The provided authorization token has expired and the updated QR-code must be re-scanned
|
AUTH_TOKEN_EXPIRED The provided authorization token has expired and the updated QR-code must be re-scanned
|
||||||
AUTH_TOKEN_INVALID An invalid authorization token was provided
|
AUTH_TOKEN_INVALID An invalid authorization token was provided
|
||||||
|
AUTH_TOKEN_INVALID2 An invalid authorization token was provided
|
||||||
|
AUTH_TOKEN_INVALIDX The specified auth token is invalid
|
||||||
AUTOARCHIVE_NOT_AVAILABLE This feature is not yet enabled for your account due to it not receiving too many private messages from strangers
|
AUTOARCHIVE_NOT_AVAILABLE This feature is not yet enabled for your account due to it not receiving too many private messages from strangers
|
||||||
BANK_CARD_NUMBER_INVALID The credit card number is invalid
|
BANK_CARD_NUMBER_INVALID The credit card number is invalid
|
||||||
BANNED_RIGHTS_INVALID You provided a set of restrictions that is invalid
|
BANNED_RIGHTS_INVALID You provided a set of restrictions that is invalid
|
||||||
BASE_PORT_LOC_INVALID The base port location is invalid
|
BASE_PORT_LOC_INVALID The base port location is invalid
|
||||||
|
BIRTHDAY_INVALID The age should be less than 150 year old in Telegram
|
||||||
BOTS_TOO_MUCH The chat has too many bots
|
BOTS_TOO_MUCH The chat has too many bots
|
||||||
BOT_CHANNELS_NA Bots can't edit admin privileges
|
BOT_CHANNELS_NA Bots can't edit admin privileges
|
||||||
BOT_COMMAND_DESCRIPTION_INVALID The command description was empty, too long or had invalid characters
|
BOT_COMMAND_DESCRIPTION_INVALID The command description was empty, too long or had invalid characters
|
||||||
|
BOT_COMMAND_INVALID The specified command is invalid
|
||||||
BOT_DOMAIN_INVALID The domain used for the auth button does not match the one configured in @BotFather
|
BOT_DOMAIN_INVALID The domain used for the auth button does not match the one configured in @BotFather
|
||||||
BOT_GAMES_DISABLED Bot games cannot be used in this type of chat
|
BOT_GAMES_DISABLED Bot games cannot be used in this type of chat
|
||||||
BOT_GROUPS_BLOCKED This bot can't be added to groups
|
BOT_GROUPS_BLOCKED This bot can't be added to groups
|
||||||
BOT_INLINE_DISABLED The inline feature of the bot is disabled
|
BOT_INLINE_DISABLED The inline feature of the bot is disabled
|
||||||
BOT_INVALID This is not a valid bot
|
BOT_INVALID This is not a valid bot
|
||||||
|
BOT_INVOICE_INVALID The provided invoice is invalid
|
||||||
BOT_METHOD_INVALID The method can't be used by bots
|
BOT_METHOD_INVALID The method can't be used by bots
|
||||||
BOT_MISSING This method can only be run by a bot
|
BOT_MISSING This method can only be run by a bot
|
||||||
|
BOT_ONESIDE_NOT_AVAIL Bots can't pin messages for one side only in private chats
|
||||||
BOT_PAYMENTS_DISABLED This method can only be run by a bot
|
BOT_PAYMENTS_DISABLED This method can only be run by a bot
|
||||||
BOT_POLLS_DISABLED Sending polls by bots has been disabled
|
BOT_POLLS_DISABLED Sending polls by bots has been disabled
|
||||||
BOT_RESPONSE_TIMEOUT The bot did not answer to the callback query in time
|
BOT_RESPONSE_TIMEOUT The bot did not answer to the callback query in time
|
||||||
BOT_SCORE_NOT_MODIFIED The bot score was not modified
|
BOT_SCORE_NOT_MODIFIED The bot score was not modified
|
||||||
|
BROADCAST_CALLS_DISABLED Broadcast calls disabled
|
||||||
BROADCAST_ID_INVALID The channel is invalid
|
BROADCAST_ID_INVALID The channel is invalid
|
||||||
BROADCAST_PUBLIC_VOTERS_FORBIDDEN Polls with public voters cannot be sent in channels
|
BROADCAST_PUBLIC_VOTERS_FORBIDDEN Polls with public voters cannot be sent in channels
|
||||||
BROADCAST_REQUIRED The request can only be used with a channel
|
BROADCAST_REQUIRED The request can only be used with a channel
|
||||||
|
BUSINESS_BOT_MISSING Business bot missing
|
||||||
BUTTON_DATA_INVALID The button callback data is invalid or too large
|
BUTTON_DATA_INVALID The button callback data is invalid or too large
|
||||||
|
BUTTON_ID_INVALID The button_id parameter is invalid
|
||||||
|
BUTTON_TEXT_INVALID The specified button text is invalid
|
||||||
BUTTON_TYPE_INVALID The type of one of the buttons you provided is invalid
|
BUTTON_TYPE_INVALID The type of one of the buttons you provided is invalid
|
||||||
BUTTON_URL_INVALID The button url is invalid
|
BUTTON_URL_INVALID The button url is invalid
|
||||||
|
BUTTON_USER_PRIVACY_RESTRICTED The privacy settings of the user specified in a keyboard button do not allow creating such button
|
||||||
CALL_ALREADY_ACCEPTED The call is already accepted
|
CALL_ALREADY_ACCEPTED The call is already accepted
|
||||||
CALL_ALREADY_DECLINED The call is already declined
|
CALL_ALREADY_DECLINED The call is already declined
|
||||||
CALL_PEER_INVALID The provided call peer object is invalid
|
CALL_PEER_INVALID The provided call peer object is invalid
|
||||||
CALL_PROTOCOL_FLAGS_INVALID Call protocol flags invalid
|
CALL_PROTOCOL_FLAGS_INVALID Call protocol flags invalid
|
||||||
CDN_METHOD_INVALID The method can't be used on CDN DCs
|
CDN_METHOD_INVALID The method can't be used on CDN DCs
|
||||||
|
CHANNELS_ADMIN_LOCATED_TOO_MUCH The user has reached the limit of public geogroups
|
||||||
CHANNELS_ADMIN_PUBLIC_TOO_MUCH You are an administrator of too many public channels
|
CHANNELS_ADMIN_PUBLIC_TOO_MUCH You are an administrator of too many public channels
|
||||||
CHANNELS_TOO_MUCH You have joined too many channels or supergroups, leave some and try again
|
CHANNELS_TOO_MUCH You have joined too many channels or supergroups, leave some and try again
|
||||||
CHANNEL_ADD_INVALID Internal error.
|
CHANNEL_ADD_INVALID Internal error.
|
||||||
CHANNEL_BANNED The channel is banned
|
CHANNEL_BANNED The channel is banned
|
||||||
|
CHANNEL_ID_INVALID The specified supergroup ID is invalid.
|
||||||
CHANNEL_INVALID The channel parameter is invalid
|
CHANNEL_INVALID The channel parameter is invalid
|
||||||
|
CHANNEL_PARICIPANT_MISSING The current user is not in the channel
|
||||||
CHANNEL_PRIVATE The channel/supergroup is not accessible
|
CHANNEL_PRIVATE The channel/supergroup is not accessible
|
||||||
CHANNEL_TOO_LARGE The channel is too large
|
CHANNEL_TOO_BIG The channel too big
|
||||||
|
CHANNEL_TOO_LARGE "Channel is too large to be deleted; this error is issued when trying to delete channels with more than 1000 members (subject to change)."
|
||||||
|
CHARGE_ALREADY_REFUNDED The charge id was already used for a refund.
|
||||||
|
CHARGE_NOT_FOUND The charge id was not found.
|
||||||
|
CHATLIST_EXCLUDE_INVALID The specified `exclude_peers` are invalid.
|
||||||
CHAT_ABOUT_NOT_MODIFIED The chat about text was not modified because you tried to edit it using the same content
|
CHAT_ABOUT_NOT_MODIFIED The chat about text was not modified because you tried to edit it using the same content
|
||||||
CHAT_ABOUT_TOO_LONG The chat about text is too long
|
CHAT_ABOUT_TOO_LONG The chat about text is too long
|
||||||
CHAT_ADMIN_REQUIRED The method requires chat admin privileges
|
CHAT_ADMIN_REQUIRED The method requires chat admin privileges
|
||||||
|
CHAT_DISCUSSION_UNALLOWED The chat discussion is not allowed
|
||||||
CHAT_FORWARDS_RESTRICTED The chat restricts forwarding content
|
CHAT_FORWARDS_RESTRICTED The chat restricts forwarding content
|
||||||
CHAT_ID_EMPTY The provided chat id is empty
|
CHAT_ID_EMPTY The provided chat id is empty
|
||||||
CHAT_ID_INVALID The chat id being used is invalid or not known yet. Make sure you see the chat before interacting with it
|
CHAT_ID_INVALID The chat id being used is invalid or not known yet. Make sure you see the chat before interacting with it
|
||||||
|
|
@ -61,12 +85,14 @@ CHAT_INVITE_PERMANENT The chat invite link is primary
|
||||||
CHAT_LINK_EXISTS The action failed because the supergroup is linked to a channel
|
CHAT_LINK_EXISTS The action failed because the supergroup is linked to a channel
|
||||||
CHAT_NOT_MODIFIED The chat settings (title, permissions, photo, etc..) were not modified because you tried to edit them using the same content
|
CHAT_NOT_MODIFIED The chat settings (title, permissions, photo, etc..) were not modified because you tried to edit them using the same content
|
||||||
CHAT_RESTRICTED The chat is restricted and cannot be used
|
CHAT_RESTRICTED The chat is restricted and cannot be used
|
||||||
|
CHAT_REVOKE_DATE_UNSUPPORTED `min_date` and `max_date` are not available for using with non-user peers
|
||||||
CHAT_SEND_INLINE_FORBIDDEN You cannot use inline bots to send messages in this chat
|
CHAT_SEND_INLINE_FORBIDDEN You cannot use inline bots to send messages in this chat
|
||||||
CHAT_TITLE_EMPTY The chat title is empty
|
CHAT_TITLE_EMPTY The chat title is empty
|
||||||
CHAT_TOO_BIG The chat is too big for this action
|
CHAT_TOO_BIG The chat is too big for this action
|
||||||
CODE_EMPTY The provided code is empty
|
CODE_EMPTY The provided code is empty
|
||||||
CODE_HASH_INVALID The provided code hash invalid
|
CODE_HASH_INVALID The provided code hash invalid
|
||||||
CODE_INVALID The provided code is invalid (i.e. from email)
|
CODE_INVALID The provided code is invalid (i.e. from email)
|
||||||
|
COLOR_INVALID The provided color is invalid
|
||||||
CONNECTION_API_ID_INVALID The provided API id is invalid
|
CONNECTION_API_ID_INVALID The provided API id is invalid
|
||||||
CONNECTION_APP_VERSION_EMPTY App version is empty
|
CONNECTION_APP_VERSION_EMPTY App version is empty
|
||||||
CONNECTION_DEVICE_MODEL_EMPTY The device model is empty
|
CONNECTION_DEVICE_MODEL_EMPTY The device model is empty
|
||||||
|
|
@ -77,8 +103,11 @@ CONNECTION_SYSTEM_EMPTY The connection to the system is empty
|
||||||
CONNECTION_SYSTEM_LANG_CODE_EMPTY The system language code is empty
|
CONNECTION_SYSTEM_LANG_CODE_EMPTY The system language code is empty
|
||||||
CONTACT_ADD_MISSING Contact to add is missing
|
CONTACT_ADD_MISSING Contact to add is missing
|
||||||
CONTACT_ID_INVALID The provided contact id is invalid
|
CONTACT_ID_INVALID The provided contact id is invalid
|
||||||
|
CONTACT_MISSING The specified user is not a contact.
|
||||||
CONTACT_NAME_EMPTY The provided contact name is empty
|
CONTACT_NAME_EMPTY The provided contact name is empty
|
||||||
CONTACT_REQ_MISSING Missing contact request
|
CONTACT_REQ_MISSING Missing contact request
|
||||||
|
CREATE_CALL_FAILED An error occurred while creating the call
|
||||||
|
CURRENCY_TOTAL_AMOUNT_INVALID The total amount of all prices is invalid
|
||||||
DATA_INVALID The encrypted data is invalid
|
DATA_INVALID The encrypted data is invalid
|
||||||
DATA_JSON_INVALID The provided JSON data is invalid
|
DATA_JSON_INVALID The provided JSON data is invalid
|
||||||
DATA_TOO_LONG Data too long
|
DATA_TOO_LONG Data too long
|
||||||
|
|
@ -88,9 +117,14 @@ DH_G_A_INVALID The g_a parameter invalid
|
||||||
DOCUMENT_INVALID The document is invalid
|
DOCUMENT_INVALID The document is invalid
|
||||||
EMAIL_HASH_EXPIRED The email hash expired and cannot be used to verify it
|
EMAIL_HASH_EXPIRED The email hash expired and cannot be used to verify it
|
||||||
EMAIL_INVALID The email provided is invalid
|
EMAIL_INVALID The email provided is invalid
|
||||||
|
EMAIL_NOT_ALLOWED This email is not allowed
|
||||||
|
EMAIL_NOT_SETUP In order to change the login email with emailVerifyPurposeLoginChange, an existing login email must already be set using emailVerifyPurposeLoginSetup.
|
||||||
EMAIL_UNCONFIRMED Email unconfirmed
|
EMAIL_UNCONFIRMED Email unconfirmed
|
||||||
EMAIL_UNCONFIRMED_X The provided email isn't confirmed, {value} is the length of the verification code that was just sent to the email
|
EMAIL_UNCONFIRMED_X The provided email isn't confirmed, {value} is the length of the verification code that was just sent to the email
|
||||||
EMAIL_VERIFY_EXPIRED The verification email has expired
|
EMAIL_VERIFY_EXPIRED The verification email has expired
|
||||||
|
EMOJI_INVALID The specified theme emoji is valid
|
||||||
|
EMOJI_MARKUP_INVALID The specified `video_emoji_markup` was invalid.
|
||||||
|
EMOJI_NOT_MODIFIED The theme wasn't changed
|
||||||
EMOTICON_EMPTY The emoticon parameter is empty
|
EMOTICON_EMPTY The emoticon parameter is empty
|
||||||
EMOTICON_INVALID The emoticon parameter is invalid
|
EMOTICON_INVALID The emoticon parameter is invalid
|
||||||
EMOTICON_STICKERPACK_MISSING The emoticon sticker pack you are trying to obtain is missing
|
EMOTICON_STICKERPACK_MISSING The emoticon sticker pack you are trying to obtain is missing
|
||||||
|
|
@ -100,16 +134,24 @@ ENCRYPTION_ALREADY_DECLINED The secret chat is already declined
|
||||||
ENCRYPTION_DECLINED The secret chat was declined
|
ENCRYPTION_DECLINED The secret chat was declined
|
||||||
ENCRYPTION_ID_INVALID The provided secret chat id is invalid
|
ENCRYPTION_ID_INVALID The provided secret chat id is invalid
|
||||||
ENTITIES_TOO_LONG The entity provided contains data that is too long, or you passed too many entities to this message
|
ENTITIES_TOO_LONG The entity provided contains data that is too long, or you passed too many entities to this message
|
||||||
|
ENTITY_BOUNDS_INVALID The message entity bounds are invalid
|
||||||
ENTITY_MENTION_USER_INVALID The mentioned entity is not an user
|
ENTITY_MENTION_USER_INVALID The mentioned entity is not an user
|
||||||
ERROR_TEXT_EMPTY The provided error message is empty
|
ERROR_TEXT_EMPTY The provided error message is empty
|
||||||
EXPIRE_DATE_INVALID The expiration date is invalid
|
EXPIRE_DATE_INVALID The expiration date is invalid
|
||||||
|
EXPIRE_FORBIDDEN Expire forbidden
|
||||||
EXPORT_CARD_INVALID The provided card is invalid
|
EXPORT_CARD_INVALID The provided card is invalid
|
||||||
|
EXTENDED_MEDIA_AMOUNT_INVALID The maximum amount of `star_count` should be less than the `stars_paid_post_amount_max`
|
||||||
|
EXTENDED_MEDIA_PEER_INVALID The specified chat type is invalid.
|
||||||
|
EXTENDED_MEDIA_TYPE_INVALID The specified extended media type is unsupported.
|
||||||
EXTERNAL_URL_INVALID The external media URL is invalid
|
EXTERNAL_URL_INVALID The external media URL is invalid
|
||||||
FIELD_NAME_EMPTY The field with the name FIELD_NAME is missing
|
FIELD_NAME_EMPTY The field with the name FIELD_NAME is missing
|
||||||
FIELD_NAME_INVALID The field with the name FIELD_NAME is invalid
|
FIELD_NAME_INVALID The field with the name FIELD_NAME is invalid
|
||||||
|
FILE_CONTENT_TYPE_INVALID File content-type is invalid
|
||||||
|
FILE_EMTPY An empty file was provided
|
||||||
FILE_ID_INVALID The file id is invalid
|
FILE_ID_INVALID The file id is invalid
|
||||||
FILE_MIGRATE_X The file is in Data Center No. {value}
|
FILE_MIGRATE_X The file is in Data Center No. {value}
|
||||||
FILE_PARTS_INVALID Invalid number of parts.
|
FILE_PARTS_INVALID Invalid number of parts.
|
||||||
|
FILE_PART_0_MISSING File part 0 missing
|
||||||
FILE_PART_EMPTY The file part sent is empty
|
FILE_PART_EMPTY The file part sent is empty
|
||||||
FILE_PART_INVALID The file part number is invalid.
|
FILE_PART_INVALID The file part number is invalid.
|
||||||
FILE_PART_LENGTH_INVALID The length of a file part is invalid
|
FILE_PART_LENGTH_INVALID The length of a file part is invalid
|
||||||
|
|
@ -120,23 +162,38 @@ FILE_PART_X_MISSING Part {value} of the file is missing from storage
|
||||||
FILE_REFERENCE_EMPTY The file id contains an empty file reference, you must obtain a valid one by fetching the message from the origin context
|
FILE_REFERENCE_EMPTY The file id contains an empty file reference, you must obtain a valid one by fetching the message from the origin context
|
||||||
FILE_REFERENCE_EXPIRED The file id contains an expired file reference, you must obtain a valid one by fetching the message from the origin context
|
FILE_REFERENCE_EXPIRED The file id contains an expired file reference, you must obtain a valid one by fetching the message from the origin context
|
||||||
FILE_REFERENCE_INVALID The file id contains an invalid file reference, you must obtain a valid one by fetching the message from the origin context
|
FILE_REFERENCE_INVALID The file id contains an invalid file reference, you must obtain a valid one by fetching the message from the origin context
|
||||||
|
FILE_TITLE_EMPTY An empty file title was specified
|
||||||
FILTER_ID_INVALID The specified filter ID is invalid
|
FILTER_ID_INVALID The specified filter ID is invalid
|
||||||
|
FILTER_INCLUDE_EMPTY The filter include is empty
|
||||||
|
FILTER_NOT_SUPPORTED The specified filter cannot be used in this context
|
||||||
|
FILTER_TITLE_EMPTY The title field of the filter is empty
|
||||||
FIRSTNAME_INVALID The first name is invalid
|
FIRSTNAME_INVALID The first name is invalid
|
||||||
FOLDER_ID_EMPTY The folder you tried to delete was already empty
|
FOLDER_ID_EMPTY The folder you tried to delete was already empty
|
||||||
FOLDER_ID_INVALID The folder id is invalid
|
FOLDER_ID_INVALID The folder id is invalid
|
||||||
|
FORM_ID_EXPIRED The specified id has expired.
|
||||||
|
FORUM_ENABLED You can't execute the specified action because the group is a [forum](https://core.telegram.org/api/forum), disable forum functionality to continue.
|
||||||
FRESH_CHANGE_ADMINS_FORBIDDEN You can't change administrator settings in this chat because your session was logged-in recently
|
FRESH_CHANGE_ADMINS_FORBIDDEN You can't change administrator settings in this chat because your session was logged-in recently
|
||||||
FROM_MESSAGE_BOT_DISABLED Bots can't use fromMessage min constructors
|
FROM_MESSAGE_BOT_DISABLED Bots can't use fromMessage min constructors
|
||||||
FROM_PEER_INVALID The from peer value is invalid
|
FROM_PEER_INVALID The from peer value is invalid
|
||||||
GAME_BOT_INVALID You cannot send that game with the current bot
|
GAME_BOT_INVALID You cannot send that game with the current bot
|
||||||
|
GENERAL_MODIFY_ICON_FORBIDDEN You can't modify the icon of the General topic.
|
||||||
GEO_POINT_INVALID Invalid geo point provided
|
GEO_POINT_INVALID Invalid geo point provided
|
||||||
GIF_CONTENT_TYPE_INVALID GIF content-type invalid
|
GIF_CONTENT_TYPE_INVALID GIF content-type invalid
|
||||||
GIF_ID_INVALID The provided gif/animation id is invalid
|
GIF_ID_INVALID The provided gif/animation id is invalid
|
||||||
|
GIFT_SLUG_INVALID The specified slug is invalid.
|
||||||
|
GIFT_SLUG_EXPIRED The gift slug is expired
|
||||||
|
GRAPH_EXPIRED_RELOAD This graph has expired, please obtain a new graph token
|
||||||
GRAPH_INVALID_RELOAD Invalid graph token provided, please reload the stats and provide the updated token
|
GRAPH_INVALID_RELOAD Invalid graph token provided, please reload the stats and provide the updated token
|
||||||
GRAPH_OUTDATED_RELOAD The graph data is outdated
|
GRAPH_OUTDATED_RELOAD The graph data is outdated
|
||||||
|
GROUPCALL_ALREADY_DISCARDED The group call was already discarded
|
||||||
|
GROUPCALL_INVALID The specified group call is invalid
|
||||||
|
GROUPCALL_JOIN_MISSING You haven't joined this group call
|
||||||
|
GROUPCALL_NOT_MODIFIED Group call settings weren't modified
|
||||||
GROUPCALL_SSRC_DUPLICATE_MUCH Too many group call synchronization source duplicates
|
GROUPCALL_SSRC_DUPLICATE_MUCH Too many group call synchronization source duplicates
|
||||||
GROUPED_MEDIA_INVALID The album contains invalid media
|
GROUPED_MEDIA_INVALID The album contains invalid media
|
||||||
GROUP_CALL_INVALID The group call is invalid
|
GROUP_CALL_INVALID The group call is invalid
|
||||||
HASH_INVALID The provided hash is invalid
|
HASH_INVALID The provided hash is invalid
|
||||||
|
HIDE_REQUESTER_MISSING The join request was missing or was already handled
|
||||||
IMAGE_PROCESS_FAILED The server failed to process your image
|
IMAGE_PROCESS_FAILED The server failed to process your image
|
||||||
IMPORT_FILE_INVALID The imported file is invalid
|
IMPORT_FILE_INVALID The imported file is invalid
|
||||||
IMPORT_FORMAT_UNRECOGNIZED The imported format is unrecognized
|
IMPORT_FORMAT_UNRECOGNIZED The imported format is unrecognized
|
||||||
|
|
@ -149,24 +206,40 @@ INPUT_FILTER_INVALID The filter is invalid for this query
|
||||||
INPUT_LAYER_INVALID The provided layer is invalid
|
INPUT_LAYER_INVALID The provided layer is invalid
|
||||||
INPUT_METHOD_INVALID The method invoked is invalid in the current schema
|
INPUT_METHOD_INVALID The method invoked is invalid in the current schema
|
||||||
INPUT_REQUEST_TOO_LONG The input request is too long
|
INPUT_REQUEST_TOO_LONG The input request is too long
|
||||||
|
INPUT_TEXT_EMPTY The specified text is empty
|
||||||
|
INPUT_TEXT_TOO_LONG The specified text is too long.
|
||||||
INPUT_USER_DEACTIVATED The target user has been deleted/deactivated
|
INPUT_USER_DEACTIVATED The target user has been deleted/deactivated
|
||||||
|
INVITES_TOO_MUCH The maximum number of per-folder invites specified by the `chatlist_invites_limit_default`/`chatlist_invites_limit_premium` was reached.
|
||||||
|
INVITE_FORBIDDEN_WITH_JOINAS If the user has anonymously joined a group call as a channel, they can't invite other users to the group call because that would cause deanonymization, because the invite would be sent using the original user ID, not the anonymized channel ID
|
||||||
INVITE_HASH_EMPTY The invite hash is empty
|
INVITE_HASH_EMPTY The invite hash is empty
|
||||||
INVITE_HASH_EXPIRED The chat invite link is no longer valid
|
INVITE_HASH_EXPIRED The chat invite link is no longer valid
|
||||||
INVITE_HASH_INVALID The invite link hash is invalid
|
INVITE_HASH_INVALID The invite link hash is invalid
|
||||||
|
INVITE_REQUEST_SENT The request to join this chat or channel has been successfully sent
|
||||||
INVITE_REVOKED_MISSING The action required a chat invite link to be revoked first
|
INVITE_REVOKED_MISSING The action required a chat invite link to be revoked first
|
||||||
|
INVITE_SLUG_EMPTY The invite slug is empty
|
||||||
|
INVITE_SLUG_EXPIRED The invite slug is expired
|
||||||
|
INVOICE_PAYLOAD_INVALID The specified invoice payload is invalid
|
||||||
|
JOIN_AS_PEER_INVALID The specified peer cannot be used to join a group call
|
||||||
|
LANG_CODE_INVALID The specified language code is invalid
|
||||||
|
LANG_CODE_NOT_SUPPORTED The specified language code is not supported
|
||||||
LANG_PACK_INVALID The provided language pack is invalid
|
LANG_PACK_INVALID The provided language pack is invalid
|
||||||
LASTNAME_INVALID The last name is invalid
|
LASTNAME_INVALID The last name is invalid
|
||||||
LIMIT_INVALID The limit parameter is invalid
|
LIMIT_INVALID The limit parameter is invalid
|
||||||
LINK_NOT_MODIFIED The chat link was not modified because you tried to link to the same target
|
LINK_NOT_MODIFIED The chat link was not modified because you tried to link to the same target
|
||||||
LOCATION_INVALID The file location is invalid
|
LOCATION_INVALID The file location is invalid
|
||||||
|
MAX_DATE_INVALID The specified maximum date is invalid
|
||||||
MAX_ID_INVALID The max_id parameter is invalid
|
MAX_ID_INVALID The max_id parameter is invalid
|
||||||
MAX_QTS_INVALID The provided QTS is invalid
|
MAX_QTS_INVALID The provided QTS is invalid
|
||||||
MD5_CHECKSUM_INVALID The file's checksum did not match the md5_checksum parameter
|
MD5_CHECKSUM_INVALID The file's checksum did not match the md5_checksum parameter
|
||||||
MEDIA_CAPTION_TOO_LONG The media caption is too long
|
MEDIA_CAPTION_TOO_LONG The media caption is too long
|
||||||
MEDIA_EMPTY The media you tried to send is invalid
|
MEDIA_EMPTY The media you tried to send is invalid
|
||||||
|
MEDIA_FILE_INVALID The provided media file is invalid
|
||||||
|
MEDIA_GROUPED_INVALID You tried to send media of different types in an album
|
||||||
MEDIA_INVALID The media is invalid
|
MEDIA_INVALID The media is invalid
|
||||||
MEDIA_NEW_INVALID The new media to edit the message with is invalid
|
MEDIA_NEW_INVALID The new media to edit the message with is invalid
|
||||||
MEDIA_PREV_INVALID The previous media cannot be edited with anything else
|
MEDIA_PREV_INVALID The previous media cannot be edited with anything else
|
||||||
|
MEDIA_TTL_INVALID The media ttl is invalid
|
||||||
|
MEDIA_VIDEO_STORY_MISSING The media does not have a photo or a video
|
||||||
MEGAGROUP_ID_INVALID The supergroup is invalid
|
MEGAGROUP_ID_INVALID The supergroup is invalid
|
||||||
MEGAGROUP_PREHISTORY_HIDDEN The action failed because the supergroup has the pre-history hidden
|
MEGAGROUP_PREHISTORY_HIDDEN The action failed because the supergroup has the pre-history hidden
|
||||||
MEGAGROUP_REQUIRED The request can only be used with a supergroup
|
MEGAGROUP_REQUIRED The request can only be used with a supergroup
|
||||||
|
|
@ -178,11 +251,16 @@ MESSAGE_NOT_MODIFIED The message was not modified because you tried to edit it u
|
||||||
MESSAGE_POLL_CLOSED You can't interact with a closed poll
|
MESSAGE_POLL_CLOSED You can't interact with a closed poll
|
||||||
MESSAGE_TOO_LONG The message text is too long
|
MESSAGE_TOO_LONG The message text is too long
|
||||||
METHOD_INVALID The API method is invalid and cannot be used
|
METHOD_INVALID The API method is invalid and cannot be used
|
||||||
|
MIN_DATE_INVALID The specified minimum date is invalid
|
||||||
MSG_ID_INVALID The message ID used in the peer was invalid
|
MSG_ID_INVALID The message ID used in the peer was invalid
|
||||||
|
MSG_TOO_OLD chat_read_mark_expire_period have passed since the message was sent, read receipts were deleted
|
||||||
|
MSG_VOICE_MISSING The message does not contain a voice message
|
||||||
MSG_WAIT_FAILED A waiting call returned an error
|
MSG_WAIT_FAILED A waiting call returned an error
|
||||||
MULTI_MEDIA_TOO_LONG The album/media group contains too many items
|
MULTI_MEDIA_TOO_LONG The album/media group contains too many items
|
||||||
NEW_SALT_INVALID The new salt is invalid
|
NEW_SALT_INVALID The new salt is invalid
|
||||||
|
NEW_SETTINGS_EMPTY No password is set on the current account, and no new password was specified in `new_settings`
|
||||||
NEW_SETTINGS_INVALID The new settings are invalid
|
NEW_SETTINGS_INVALID The new settings are invalid
|
||||||
|
NOGENERAL_HIDE_FORBIDDEN The hidden parameter is only valid for the General topic message_thread_id=1
|
||||||
NEXT_OFFSET_INVALID The next offset value is invalid
|
NEXT_OFFSET_INVALID The next offset value is invalid
|
||||||
OFFSET_INVALID The offset parameter is invalid
|
OFFSET_INVALID The offset parameter is invalid
|
||||||
OFFSET_PEER_ID_INVALID The provided offset peer is invalid
|
OFFSET_PEER_ID_INVALID The provided offset peer is invalid
|
||||||
|
|
@ -192,6 +270,8 @@ PACK_SHORT_NAME_INVALID Invalid sticker pack name. It must begin with a letter,
|
||||||
PACK_SHORT_NAME_OCCUPIED A sticker pack with this name already exists
|
PACK_SHORT_NAME_OCCUPIED A sticker pack with this name already exists
|
||||||
PACK_TITLE_INVALID The sticker pack title is invalid
|
PACK_TITLE_INVALID The sticker pack title is invalid
|
||||||
PARTICIPANTS_TOO_FEW The chat doesn't have enough participants
|
PARTICIPANTS_TOO_FEW The chat doesn't have enough participants
|
||||||
|
PARTICIPANT_ID_INVALID The specified participant ID is invalid
|
||||||
|
PARTICIPANT_JOIN_MISSING Trying to enable a presentation, when the user hasn't joined the Video Chat with phone.joinGroupCall
|
||||||
PARTICIPANT_VERSION_OUTDATED The other participant is using an outdated Telegram app version
|
PARTICIPANT_VERSION_OUTDATED The other participant is using an outdated Telegram app version
|
||||||
PASSWORD_EMPTY The password provided is empty
|
PASSWORD_EMPTY The password provided is empty
|
||||||
PASSWORD_HASH_INVALID The two-step verification password is invalid
|
PASSWORD_HASH_INVALID The two-step verification password is invalid
|
||||||
|
|
@ -201,6 +281,7 @@ PASSWORD_REQUIRED The two-step verification password is required for this method
|
||||||
PASSWORD_TOO_FRESH_X The two-step verification password was added recently and you are required to wait {value} seconds
|
PASSWORD_TOO_FRESH_X The two-step verification password was added recently and you are required to wait {value} seconds
|
||||||
PAYMENT_PROVIDER_INVALID The payment provider was not recognised or its token was invalid
|
PAYMENT_PROVIDER_INVALID The payment provider was not recognised or its token was invalid
|
||||||
PEER_FLOOD The method can't be used because your account is currently limited
|
PEER_FLOOD The method can't be used because your account is currently limited
|
||||||
|
PEER_HISTORY_EMPTY Peer history empty
|
||||||
PEER_ID_INVALID The peer id being used is invalid or not known yet. Make sure you meet the peer before interacting with it
|
PEER_ID_INVALID The peer id being used is invalid or not known yet. Make sure you meet the peer before interacting with it
|
||||||
PEER_ID_NOT_SUPPORTED The provided peer id is not supported
|
PEER_ID_NOT_SUPPORTED The provided peer id is not supported
|
||||||
PERSISTENT_TIMESTAMP_EMPTY The pts argument is empty
|
PERSISTENT_TIMESTAMP_EMPTY The pts argument is empty
|
||||||
|
|
@ -209,6 +290,8 @@ PHONE_CODE_EMPTY The phone code is missing
|
||||||
PHONE_CODE_EXPIRED The confirmation code has expired
|
PHONE_CODE_EXPIRED The confirmation code has expired
|
||||||
PHONE_CODE_HASH_EMPTY The phone code hash is missing
|
PHONE_CODE_HASH_EMPTY The phone code hash is missing
|
||||||
PHONE_CODE_INVALID The confirmation code is invalid
|
PHONE_CODE_INVALID The confirmation code is invalid
|
||||||
|
PHONE_HASH_EXPIRED An invalid or expired phone_code_hash was provided
|
||||||
|
PHONE_NOT_OCCUPIED No user is associated to the specified phone number
|
||||||
PHONE_NUMBER_APP_SIGNUP_FORBIDDEN You can't sign up using this app
|
PHONE_NUMBER_APP_SIGNUP_FORBIDDEN You can't sign up using this app
|
||||||
PHONE_NUMBER_BANNED The phone number is banned from Telegram and cannot be used
|
PHONE_NUMBER_BANNED The phone number is banned from Telegram and cannot be used
|
||||||
PHONE_NUMBER_FLOOD This number has tried to login too many times
|
PHONE_NUMBER_FLOOD This number has tried to login too many times
|
||||||
|
|
@ -229,19 +312,26 @@ PHOTO_SAVE_FILE_INVALID The photo you tried to send cannot be saved by Telegram
|
||||||
PHOTO_THUMB_URL_EMPTY The photo thumb URL is empty
|
PHOTO_THUMB_URL_EMPTY The photo thumb URL is empty
|
||||||
PHOTO_THUMB_URL_INVALID The photo thumb URL is invalid
|
PHOTO_THUMB_URL_INVALID The photo thumb URL is invalid
|
||||||
PINNED_DIALOGS_TOO_MUCH Too many pinned dialogs
|
PINNED_DIALOGS_TOO_MUCH Too many pinned dialogs
|
||||||
|
PINNED_TOPIC_NOT_MODIFIED The pinned topic was not modified.
|
||||||
PIN_RESTRICTED You can't pin messages in private chats with other people
|
PIN_RESTRICTED You can't pin messages in private chats with other people
|
||||||
POLL_ANSWERS_INVALID The poll answers are invalid
|
POLL_ANSWERS_INVALID The poll answers are invalid
|
||||||
|
POLL_ANSWER_INVALID One of the poll answers is not acceptable
|
||||||
POLL_OPTION_DUPLICATE A duplicate option was sent in the same poll
|
POLL_OPTION_DUPLICATE A duplicate option was sent in the same poll
|
||||||
POLL_OPTION_INVALID A poll option used invalid data (the data may be too long)
|
POLL_OPTION_INVALID A poll option used invalid data (the data may be too long)
|
||||||
POLL_QUESTION_INVALID The poll question is invalid
|
POLL_QUESTION_INVALID The poll question is invalid
|
||||||
POLL_UNSUPPORTED This layer does not support polls in the invoked method
|
POLL_UNSUPPORTED This layer does not support polls in the invoked method
|
||||||
POLL_VOTE_REQUIRED Cast a vote in the poll before calling this method
|
POLL_VOTE_REQUIRED Cast a vote in the poll before calling this method
|
||||||
|
PREMIUM_ACCOUNT_REQUIRED The method requires a premium user account
|
||||||
|
PREMIUM_GIFTCODE_WAS_REFUNDED This gift code can't be redeemed because the giveaway organizer requested a refund
|
||||||
|
PRICING_CHAT_INVALID This chat chat doesn't support subscription link.
|
||||||
PRIVACY_KEY_INVALID The privacy key is invalid
|
PRIVACY_KEY_INVALID The privacy key is invalid
|
||||||
PRIVACY_TOO_LONG Your privacy exception list has exceeded the maximum capacity
|
PRIVACY_TOO_LONG Your privacy exception list has exceeded the maximum capacity
|
||||||
PRIVACY_VALUE_INVALID The privacy value is invalid
|
PRIVACY_VALUE_INVALID The privacy value is invalid
|
||||||
|
PUBLIC_KEY_REQUIRED A public key is required
|
||||||
QUERY_ID_EMPTY The query ID is empty
|
QUERY_ID_EMPTY The query ID is empty
|
||||||
QUERY_ID_INVALID The callback query id is invalid
|
QUERY_ID_INVALID The callback query id is invalid
|
||||||
QUERY_TOO_SHORT The query is too short
|
QUERY_TOO_SHORT The query is too short
|
||||||
|
QUIZ_ANSWER_MISSING You can forward a quiz while hiding the original author only after choosing an option in the quiz
|
||||||
QUIZ_CORRECT_ANSWERS_EMPTY The correct answers of the quiz are empty
|
QUIZ_CORRECT_ANSWERS_EMPTY The correct answers of the quiz are empty
|
||||||
QUIZ_CORRECT_ANSWERS_TOO_MUCH The quiz contains too many correct answers
|
QUIZ_CORRECT_ANSWERS_TOO_MUCH The quiz contains too many correct answers
|
||||||
QUIZ_CORRECT_ANSWER_INVALID The correct answers of the quiz are invalid
|
QUIZ_CORRECT_ANSWER_INVALID The correct answers of the quiz are invalid
|
||||||
|
|
@ -257,33 +347,46 @@ REPLY_MARKUP_BUY_EMPTY Reply markup for buy button empty
|
||||||
REPLY_MARKUP_GAME_EMPTY The provided reply markup for the game is empty
|
REPLY_MARKUP_GAME_EMPTY The provided reply markup for the game is empty
|
||||||
REPLY_MARKUP_INVALID The provided reply markup is invalid
|
REPLY_MARKUP_INVALID The provided reply markup is invalid
|
||||||
REPLY_MARKUP_TOO_LONG The reply markup is too long
|
REPLY_MARKUP_TOO_LONG The reply markup is too long
|
||||||
|
REPLY_MESSAGE_ID_INVALID The reply message id is invalid
|
||||||
|
RESET_REQUEST_MISSING No password reset is in progress
|
||||||
RESULTS_TOO_MUCH The result contains too many items
|
RESULTS_TOO_MUCH The result contains too many items
|
||||||
RESULT_ID_DUPLICATE The result contains items with duplicated identifiers
|
RESULT_ID_DUPLICATE The result contains items with duplicated identifiers
|
||||||
RESULT_ID_EMPTY Result ID empty
|
RESULT_ID_EMPTY Result ID empty
|
||||||
RESULT_ID_INVALID The given result cannot be used to send the selection to the bot
|
RESULT_ID_INVALID The given result cannot be used to send the selection to the bot
|
||||||
|
REACTIONS_TOO_MANY Currently, non-premium users, can set up to one reaction per message
|
||||||
RESULT_TYPE_INVALID The result type is invalid
|
RESULT_TYPE_INVALID The result type is invalid
|
||||||
REVOTE_NOT_ALLOWED You cannot change your vote
|
REVOTE_NOT_ALLOWED You cannot change your vote
|
||||||
|
RIGHTS_NOT_MODIFIED The new admin rights are equal to the old rights, no change was made
|
||||||
RSA_DECRYPT_FAILED Internal RSA decryption failed
|
RSA_DECRYPT_FAILED Internal RSA decryption failed
|
||||||
SCHEDULE_BOT_NOT_ALLOWED Bots are not allowed to schedule messages
|
SCHEDULE_BOT_NOT_ALLOWED Bots are not allowed to schedule messages
|
||||||
SCHEDULE_DATE_INVALID Invalid schedule date provided
|
SCHEDULE_DATE_INVALID Invalid schedule date provided
|
||||||
SCHEDULE_DATE_TOO_LATE The date you tried to schedule is too far in the future (more than one year)
|
SCHEDULE_DATE_TOO_LATE The date you tried to schedule is too far in the future (more than one year)
|
||||||
SCHEDULE_STATUS_PRIVATE You cannot schedule a message until the person comes online if their privacy does not show this information
|
SCHEDULE_STATUS_PRIVATE You cannot schedule a message until the person comes online if their privacy does not show this information
|
||||||
SCHEDULE_TOO_MUCH You tried to schedule too many messages in this chat
|
SCHEDULE_TOO_MUCH You tried to schedule too many messages in this chat
|
||||||
|
SCORE_INVALID The specified game score is invalid
|
||||||
SEARCH_QUERY_EMPTY The search query is empty
|
SEARCH_QUERY_EMPTY The search query is empty
|
||||||
|
SEARCH_WITH_LINK_NOT_SUPPORTED You cannot provide a search query and an invite link at the same time
|
||||||
SECONDS_INVALID The seconds interval is invalid
|
SECONDS_INVALID The seconds interval is invalid
|
||||||
|
SEND_AS_PEER_INVALID You can't send messages as the specified peer
|
||||||
SEND_MESSAGE_MEDIA_INVALID The message media is invalid
|
SEND_MESSAGE_MEDIA_INVALID The message media is invalid
|
||||||
SEND_MESSAGE_TYPE_INVALID The message type is invalid
|
SEND_MESSAGE_TYPE_INVALID The message type is invalid
|
||||||
SESSION_TOO_FRESH_X You can't do this action because the current session was logged-in recently
|
SESSION_TOO_FRESH_X You can't do this action because the current session was logged-in recently
|
||||||
SETTINGS_INVALID Invalid settings were provided
|
SETTINGS_INVALID Invalid settings were provided
|
||||||
SHA256_HASH_INVALID The provided SHA256 hash is invalid
|
SHA256_HASH_INVALID The provided SHA256 hash is invalid
|
||||||
SHORTNAME_OCCUPY_FAILED An error occurred when trying to register the short-name used for the sticker pack. Try a different name
|
SHORTNAME_OCCUPY_FAILED An error occurred when trying to register the short-name used for the sticker pack. Try a different name
|
||||||
|
SHORT_NAME_INVALID The specified short name is invalid
|
||||||
|
SHORT_NAME_OCCUPIED The specified short name is already in use
|
||||||
SLOWMODE_MULTI_MSGS_DISABLED Slowmode is enabled, you cannot forward multiple messages to this group
|
SLOWMODE_MULTI_MSGS_DISABLED Slowmode is enabled, you cannot forward multiple messages to this group
|
||||||
SMS_CODE_CREATE_FAILED An error occurred while creating the SMS code
|
SMS_CODE_CREATE_FAILED An error occurred while creating the SMS code
|
||||||
SRP_ID_INVALID Invalid SRP ID provided
|
SRP_ID_INVALID Invalid SRP ID provided
|
||||||
SRP_PASSWORD_CHANGED The password has changed
|
SRP_PASSWORD_CHANGED The password has changed
|
||||||
|
STARGIFT_ALREADY_CONVERTED The provided star gift already converted to stars
|
||||||
|
STARGIFT_ALREADY_UPGRADED This star gift was already upgraded before
|
||||||
|
STARGIFT_USAGE_LIMITED The star gift usage is limited
|
||||||
START_PARAM_EMPTY The start parameter is empty
|
START_PARAM_EMPTY The start parameter is empty
|
||||||
START_PARAM_INVALID The start parameter is invalid
|
START_PARAM_INVALID The start parameter is invalid
|
||||||
START_PARAM_TOO_LONG The start parameter is too long
|
START_PARAM_TOO_LONG The start parameter is too long
|
||||||
|
STICKERPACK_STICKERS_TOO_MUCH There are too many stickers in this stickerpack, you can't add any more
|
||||||
STICKERSET_INVALID The requested sticker set is invalid
|
STICKERSET_INVALID The requested sticker set is invalid
|
||||||
STICKERSET_NOT_MODIFIED The sticker set is not modified
|
STICKERSET_NOT_MODIFIED The sticker set is not modified
|
||||||
STICKERS_EMPTY The sticker provided is empty
|
STICKERS_EMPTY The sticker provided is empty
|
||||||
|
|
@ -291,27 +394,55 @@ STICKERS_TOO_MUCH Too many stickers in the set
|
||||||
STICKER_DOCUMENT_INVALID The sticker document is invalid
|
STICKER_DOCUMENT_INVALID The sticker document is invalid
|
||||||
STICKER_EMOJI_INVALID The sticker emoji is invalid
|
STICKER_EMOJI_INVALID The sticker emoji is invalid
|
||||||
STICKER_FILE_INVALID The sticker file is invalid
|
STICKER_FILE_INVALID The sticker file is invalid
|
||||||
|
STICKER_GIF_DIMENSIONS The specified video sticker has invalid dimensions
|
||||||
STICKER_ID_INVALID The provided sticker id is invalid
|
STICKER_ID_INVALID The provided sticker id is invalid
|
||||||
STICKER_INVALID The provided sticker is invalid
|
STICKER_INVALID The provided sticker is invalid
|
||||||
|
STICKER_MIME_INVALID Make sure to pass a valid image file for the right InputFile parameter
|
||||||
STICKER_PNG_DIMENSIONS The sticker png dimensions are invalid
|
STICKER_PNG_DIMENSIONS The sticker png dimensions are invalid
|
||||||
STICKER_PNG_NOPNG Stickers must be png files but the provided image was not a png
|
STICKER_PNG_NOPNG Stickers must be png files but the provided image was not a png
|
||||||
|
STICKER_TGS_NODOC You must send the animated sticker as a document
|
||||||
STICKER_TGS_NOTGS A tgs sticker file was expected, but something else was provided
|
STICKER_TGS_NOTGS A tgs sticker file was expected, but something else was provided
|
||||||
STICKER_VIDEO_NOWEBM A webm video file was expected, but something else was provided
|
|
||||||
STICKER_THUMB_PNG_NOPNG A png sticker thumbnail file was expected, but something else was provided
|
STICKER_THUMB_PNG_NOPNG A png sticker thumbnail file was expected, but something else was provided
|
||||||
|
STICKER_VIDEO_BIG The specified video sticker is too big
|
||||||
|
STICKER_VIDEO_NODOC You must send the video sticker as a document
|
||||||
|
STICKER_VIDEO_NOWEBM A webm video file was expected, but something else was provided
|
||||||
|
STORY_ID_EMPTY You specified no story IDs.
|
||||||
|
STORY_ID_INVALID The specified story ID is invalid.
|
||||||
|
STORY_NOT_MODIFIED The new story information you passed is equal to the previous story information, thus it wasn't modified.
|
||||||
|
STORY_PERIOD_INVALID The specified story period is invalid for this account.
|
||||||
|
STORIES_TOO_MUCH Too many stories in the current account
|
||||||
|
STORY_SEND_FLOOD_WEEKLY_X You've hit the weekly story limit, wait for the specified number of seconds before posting a new story.
|
||||||
|
STORY_SEND_FLOOD_MONTHLY_X You've hit the monthly story limit, wait for the specified number of seconds before posting a new story.
|
||||||
|
STORY_PERIOD_INVALID The story period is invalid
|
||||||
|
SUBSCRIPTION_PERIOD_INVALID The subscription period is invalid.
|
||||||
|
SWITCH_PM_TEXT_EMPTY The switch_pm.text field was empty
|
||||||
TAKEOUT_INVALID The takeout id is invalid
|
TAKEOUT_INVALID The takeout id is invalid
|
||||||
TAKEOUT_REQUIRED The method must be invoked inside a takeout session
|
TAKEOUT_REQUIRED The method must be invoked inside a takeout session
|
||||||
|
TEMP_AUTH_KEY_ALREADY_BOUND The passed temporary key is already bound to another perm_auth_key_id
|
||||||
TEMP_AUTH_KEY_EMPTY The temporary auth key provided is empty
|
TEMP_AUTH_KEY_EMPTY The temporary auth key provided is empty
|
||||||
THEME_FILE_INVALID Invalid theme file provided
|
THEME_FILE_INVALID Invalid theme file provided
|
||||||
THEME_FORMAT_INVALID Invalid theme format provided
|
THEME_FORMAT_INVALID Invalid theme format provided
|
||||||
THEME_INVALID Invalid theme provided
|
THEME_INVALID Invalid theme provided
|
||||||
THEME_MIME_INVALID You cannot create this theme because the mime-type is invalid
|
THEME_MIME_INVALID You cannot create this theme because the mime-type is invalid
|
||||||
|
THEME_TITLE_INVALID The specified theme title is invalid
|
||||||
|
TITLE_INVALID The specified stickerpack title is invalid
|
||||||
TMP_PASSWORD_DISABLED The temporary password is disabled
|
TMP_PASSWORD_DISABLED The temporary password is disabled
|
||||||
TMP_PASSWORD_INVALID The temporary password is invalid
|
TMP_PASSWORD_INVALID The temporary password is invalid
|
||||||
TOKEN_INVALID The provided token is invalid
|
TOKEN_INVALID The provided token is invalid
|
||||||
|
TOPIC_CLOSED The topic was closed
|
||||||
|
TOPIC_DELETED The topic was deleted
|
||||||
|
TOPIC_CLOSE_SEPARATELY The close flag cannot be provided together with any of the other flags.
|
||||||
|
TOPIC_HIDE_SEPARATELY The hide flag cannot be provided together with any of the other flags.
|
||||||
|
TOPIC_ID_INVALID The provided topic ID is invalid
|
||||||
|
TOPIC_NOT_MODIFIED The topic was not modified
|
||||||
|
TOPIC_TITLE_EMPTY The specified topic title is empty.
|
||||||
|
TO_LANG_INVALID The specified destination language is invalid
|
||||||
|
TRANSCRIPTION_FAILED Telegram is having internal problems. Please try again later to transcribe the audio.
|
||||||
TTL_DAYS_INVALID The provided TTL days is invalid
|
TTL_DAYS_INVALID The provided TTL days is invalid
|
||||||
TTL_MEDIA_INVALID The media does not support self-destruction
|
TTL_MEDIA_INVALID The media does not support self-destruction
|
||||||
TYPES_EMPTY The types parameter is empty
|
TYPES_EMPTY The types parameter is empty
|
||||||
TYPE_CONSTRUCTOR_INVALID The type constructor is invalid
|
TYPE_CONSTRUCTOR_INVALID The type constructor is invalid
|
||||||
|
UNKNOWN_ERROR Unknown error
|
||||||
UNTIL_DATE_INVALID That date parameter is invalid
|
UNTIL_DATE_INVALID That date parameter is invalid
|
||||||
URL_INVALID The URL provided is invalid
|
URL_INVALID The URL provided is invalid
|
||||||
USAGE_LIMIT_INVALID The usage limit is invalid
|
USAGE_LIMIT_INVALID The usage limit is invalid
|
||||||
|
|
@ -319,10 +450,12 @@ USERNAME_INVALID The username is invalid
|
||||||
USERNAME_NOT_MODIFIED The username was not modified because you tried to edit it using the same one
|
USERNAME_NOT_MODIFIED The username was not modified because you tried to edit it using the same one
|
||||||
USERNAME_NOT_OCCUPIED The username is not occupied by anyone
|
USERNAME_NOT_OCCUPIED The username is not occupied by anyone
|
||||||
USERNAME_OCCUPIED The username is already in use by someone else
|
USERNAME_OCCUPIED The username is already in use by someone else
|
||||||
|
USERNAME_PURCHASE_AVAILABLE The username is available for purchase on fragment.com
|
||||||
USERPIC_UPLOAD_REQUIRED You are required to upload a profile picture for this action
|
USERPIC_UPLOAD_REQUIRED You are required to upload a profile picture for this action
|
||||||
USERS_TOO_FEW Not enough users (to create a chat, for example)
|
USERS_TOO_FEW Not enough users (to create a chat, for example)
|
||||||
USERS_TOO_MUCH The maximum number of users has been exceeded (to create a chat, for example)
|
USERS_TOO_MUCH The maximum number of users has been exceeded (to create a chat, for example)
|
||||||
USER_ADMIN_INVALID The action requires admin privileges. Probably you tried to edit admin privileges on someone you don't have rights to
|
USER_ADMIN_INVALID The action requires admin privileges. Probably you tried to edit admin privileges on someone you don't have rights to
|
||||||
|
USER_ALREADY_INVITED You have already invited this user
|
||||||
USER_ALREADY_PARTICIPANT The user is already a participant of this chat
|
USER_ALREADY_PARTICIPANT The user is already a participant of this chat
|
||||||
USER_BANNED_IN_CHANNEL You are limited from sending messages in supergroups/channels, check @SpamBot for details
|
USER_BANNED_IN_CHANNEL You are limited from sending messages in supergroups/channels, check @SpamBot for details
|
||||||
USER_BLOCKED The user is blocked
|
USER_BLOCKED The user is blocked
|
||||||
|
|
@ -338,12 +471,17 @@ USER_IS_BOT A bot cannot send messages to other bots or to itself
|
||||||
USER_KICKED This user was kicked from this chat
|
USER_KICKED This user was kicked from this chat
|
||||||
USER_NOT_MUTUAL_CONTACT The user is not a mutual contact
|
USER_NOT_MUTUAL_CONTACT The user is not a mutual contact
|
||||||
USER_NOT_PARTICIPANT The user is not a member of this chat
|
USER_NOT_PARTICIPANT The user is not a member of this chat
|
||||||
|
USER_PUBLIC_MISSING The accounts username is missing
|
||||||
|
USER_VOLUME_INVALID The specified user volume is invalid
|
||||||
VIDEO_CONTENT_TYPE_INVALID The video content type is invalid (i.e.: not streamable)
|
VIDEO_CONTENT_TYPE_INVALID The video content type is invalid (i.e.: not streamable)
|
||||||
VIDEO_FILE_INVALID The video file is invalid
|
VIDEO_FILE_INVALID The video file is invalid
|
||||||
|
VIDEO_TITLE_EMPTY The specified video title is empty
|
||||||
|
VOICE_MESSAGES_FORBIDDEN This user's privacy settings forbid you from sending voice messages
|
||||||
VOLUME_LOC_NOT_FOUND The volume location can't be found
|
VOLUME_LOC_NOT_FOUND The volume location can't be found
|
||||||
WALLPAPER_FILE_INVALID The provided file cannot be used as a wallpaper
|
WALLPAPER_FILE_INVALID The provided file cannot be used as a wallpaper
|
||||||
WALLPAPER_INVALID The input wallpaper was not valid
|
WALLPAPER_INVALID The input wallpaper was not valid
|
||||||
WALLPAPER_MIME_INVALID The wallpaper mime type is invalid
|
WALLPAPER_MIME_INVALID The wallpaper mime type is invalid
|
||||||
|
WALLPAPER_NOT_FOUND The specified wallpaper could not be found.
|
||||||
WC_CONVERT_URL_INVALID WC convert URL invalid
|
WC_CONVERT_URL_INVALID WC convert URL invalid
|
||||||
WEBDOCUMENT_INVALID The web document is invalid
|
WEBDOCUMENT_INVALID The web document is invalid
|
||||||
WEBDOCUMENT_MIME_INVALID The web document mime type is invalid
|
WEBDOCUMENT_MIME_INVALID The web document mime type is invalid
|
||||||
|
|
@ -352,5 +490,19 @@ WEBDOCUMENT_URL_EMPTY The web document URL is empty
|
||||||
WEBDOCUMENT_URL_INVALID The web document URL is invalid
|
WEBDOCUMENT_URL_INVALID The web document URL is invalid
|
||||||
WEBPAGE_CURL_FAILED Telegram server could not fetch the provided URL
|
WEBPAGE_CURL_FAILED Telegram server could not fetch the provided URL
|
||||||
WEBPAGE_MEDIA_EMPTY The URL doesn't contain any valid media
|
WEBPAGE_MEDIA_EMPTY The URL doesn't contain any valid media
|
||||||
|
WEBPAGE_NOT_FOUND Webpage not found
|
||||||
|
WEBPAGE_URL_INVALID Webpage url invalid
|
||||||
|
WEBPUSH_AUTH_INVALID The specified web push authentication secret is invalid
|
||||||
|
WEBPUSH_KEY_INVALID The specified web push elliptic curve Diffie-Hellman public key is invalid
|
||||||
|
WEBPUSH_TOKEN_INVALID The specified web push token is invalid
|
||||||
YOU_BLOCKED_USER You blocked this user
|
YOU_BLOCKED_USER You blocked this user
|
||||||
ENTITY_BOUNDS_INVALID The message entity bounds are invalid
|
STORIES_NEVER_CREATED You have never created any stories
|
||||||
|
MEDIA_FILE_INVALID The provided media file is invalid
|
||||||
|
CHANNEL_FORUM_MISSING The channel forum is missing
|
||||||
|
TTL_PERIOD_INVALID The provided TTL period is invalid
|
||||||
|
BOOSTS_REQUIRED The specified channel must first be boosted by its users in order to perform this action
|
||||||
|
BOOSTS_EMPTY You can't modify the icon of the General topic.
|
||||||
|
BOOST_NOT_MODIFIED You're already boosting the specified channel.
|
||||||
|
PAYMENT_REQUIRED The payment is required
|
||||||
|
BOOST_PEER_INVALID The specified `boost_peer` is invalid.
|
||||||
|
STARS_AMOUNT_INVALID The specified `amount` is invalid.
|
||||||
|
|
|
@ -4,25 +4,44 @@ CHANNEL_PUBLIC_GROUP_NA The channel/supergroup is not available
|
||||||
CHAT_ADMIN_INVITE_REQUIRED You don't have rights to invite other users
|
CHAT_ADMIN_INVITE_REQUIRED You don't have rights to invite other users
|
||||||
CHAT_ADMIN_REQUIRED The method requires chat admin privileges
|
CHAT_ADMIN_REQUIRED The method requires chat admin privileges
|
||||||
CHAT_FORBIDDEN You cannot write in this chat
|
CHAT_FORBIDDEN You cannot write in this chat
|
||||||
CHAT_SEND_GIFS_FORBIDDEN You can't send animations in this chat
|
CHAT_GUEST_SEND_FORBIDDEN You need to join the discussion group before commentingr
|
||||||
CHAT_SEND_INLINE_FORBIDDEN You cannot use inline bots to send messages in this chat
|
|
||||||
CHAT_SEND_MEDIA_FORBIDDEN You can't send media messages in this chat
|
|
||||||
CHAT_SEND_POLL_FORBIDDEN You can't send polls in this chat
|
|
||||||
CHAT_SEND_STICKERS_FORBIDDEN You can't send stickers in this chat
|
|
||||||
CHAT_WRITE_FORBIDDEN You don't have rights to send messages in this chat
|
|
||||||
EDIT_BOT_INVITE_FORBIDDEN Bots' chat invite links can't be edited
|
EDIT_BOT_INVITE_FORBIDDEN Bots' chat invite links can't be edited
|
||||||
INLINE_BOT_REQUIRED The action must be performed through an inline bot callback
|
INLINE_BOT_REQUIRED The action must be performed through an inline bot callback
|
||||||
MESSAGE_AUTHOR_REQUIRED You are not the author of this message
|
MESSAGE_AUTHOR_REQUIRED You are not the author of this message
|
||||||
MESSAGE_DELETE_FORBIDDEN You don't have rights to delete messages in this chat, most likely because you are not the author of them
|
MESSAGE_DELETE_FORBIDDEN You don't have rights to delete messages in this chat, most likely because you are not the author of them
|
||||||
|
NOT_ALLOWED Not allowed
|
||||||
|
NOT_ELIGIBLE You are not eligible for this action
|
||||||
|
PARTICIPANT_JOIN_MISSING Trying to enable a presentation, when the user hasn't joined the Video Chat with phone.joinGroupCall
|
||||||
POLL_VOTE_REQUIRED Cast a vote in the poll before calling this method
|
POLL_VOTE_REQUIRED Cast a vote in the poll before calling this method
|
||||||
|
PREMIUM_ACCOUNT_REQUIRED This action requires a premium account
|
||||||
|
PRIVACY_PREMIUM_REQUIRED The user has restricted from sending messages OR This action requires a premium account
|
||||||
|
PUBLIC_CHANNEL_MISSING You can only export group call invite links for public chats or channels
|
||||||
RIGHT_FORBIDDEN You don't have enough rights for this action, or you tried to set one or more admin rights that can't be applied to this kind of chat (channel or supergroup)
|
RIGHT_FORBIDDEN You don't have enough rights for this action, or you tried to set one or more admin rights that can't be applied to this kind of chat (channel or supergroup)
|
||||||
SENSITIVE_CHANGE_FORBIDDEN Your sensitive content settings can't be changed at this time
|
SENSITIVE_CHANGE_FORBIDDEN Your sensitive content settings can't be changed at this time
|
||||||
TAKEOUT_REQUIRED The method must be invoked inside a takeout session
|
TAKEOUT_REQUIRED The method must be invoked inside a takeout session
|
||||||
USER_BOT_INVALID This method can only be called by a bot
|
USER_BOT_INVALID This method can only be called by a bot
|
||||||
USER_CHANNELS_TOO_MUCH One of the users you tried to add is already in too many channels/supergroups
|
USER_CHANNELS_TOO_MUCH One of the users you tried to add is already in too many channels/supergroups
|
||||||
|
USER_DELETED You can't send this secret message because the other participant deleted their account
|
||||||
USER_INVALID The provided user is invalid
|
USER_INVALID The provided user is invalid
|
||||||
USER_IS_BLOCKED The user is blocked
|
USER_IS_BLOCKED The user is blocked
|
||||||
USER_NOT_MUTUAL_CONTACT The provided user is not a mutual contact
|
USER_NOT_MUTUAL_CONTACT The provided user is not a mutual contact
|
||||||
USER_PRIVACY_RESTRICTED The user's privacy settings is preventing you to perform this action
|
USER_PRIVACY_RESTRICTED The user's privacy settings is preventing you to perform this action
|
||||||
USER_RESTRICTED You are limited/restricted. You can't perform this action
|
USER_RESTRICTED You are limited/restricted. You can't perform this action
|
||||||
PREMIUM_ACCOUNT_REQUIRED This action requires a premium account
|
CHAT_SEND_AUDIOS_FORBIDDEN You can't send audio messages in this chat
|
||||||
|
CHAT_SEND_DOCS_FORBIDDEN You can't send a documents to this chat
|
||||||
|
CHAT_SEND_GAME_FORBIDDEN You can't send a game to this chat
|
||||||
|
CHAT_SEND_GIFS_FORBIDDEN You can't send gifs in this chat
|
||||||
|
CHAT_SEND_INLINE_FORBIDDEN You can't use inline bot to send messages in this chat
|
||||||
|
CHAT_SEND_MEDIA_FORBIDDEN You can't send media in this chat
|
||||||
|
CHAT_SEND_PHOTOS_FORBIDDEN You can't send photos in this chat
|
||||||
|
CHAT_SEND_PLAIN_FORBIDDEN You can't send non-media (text) messages in this chat
|
||||||
|
CHAT_SEND_POLL_FORBIDDEN You can't send polls in this chat
|
||||||
|
CHAT_SEND_STICKERS_FORBIDDEN You can't send stickers in this chat
|
||||||
|
CHAT_SEND_VIDEOS_FORBIDDEN You can't send videos in this chat
|
||||||
|
CHAT_SEND_VOICES_FORBIDDEN You can't send voice recordings in this chat
|
||||||
|
CHAT_WRITE_FORBIDDEN You can't write in this chat
|
||||||
|
GROUPCALL_ALREADY_STARTED The groupcall has already started, you can join directly using phone.joinGroupCall
|
||||||
|
GROUPCALL_FORBIDDEN The group call has already ended
|
||||||
|
LIVE_DISABLED Story is disabled server-side
|
||||||
|
CHAT_GUEST_SEND_FORBIDDEN You need to join the discussion group before commenting
|
||||||
|
ALLOW_PAYMENT_REQUIRED_X Payment of {value} stars is required to perform this action
|
||||||
|
|
|
@ -1,13 +1,23 @@
|
||||||
id message
|
id message
|
||||||
AUTH_KEY_DUPLICATED The same authorization key (session file) was used in more than one place simultaneously. You must delete your session file and log in again with your phone number or bot token
|
AUTH_KEY_DUPLICATED The same authorization key (session file) was used in more than one place simultaneously. You must delete your session file and log in again with your phone number or bot token
|
||||||
CHANNEL_PRIVATE The channel/supergroup is not accessible
|
CHANNEL_PRIVATE The channel/supergroup is not accessible
|
||||||
|
CHANNEL_TOO_LARGE Сhannel is too large to be deleted. Contact support for removal
|
||||||
|
CHAT_FORWARDS_RESTRICTED You can't forward messages from a protected chat
|
||||||
FILEREF_UPGRADE_NEEDED The file reference has expired and you must use a refreshed one by obtaining the original media message
|
FILEREF_UPGRADE_NEEDED The file reference has expired and you must use a refreshed one by obtaining the original media message
|
||||||
FRESH_CHANGE_ADMINS_FORBIDDEN You were just elected admin, you can't add or modify other admins yet
|
FRESH_CHANGE_ADMINS_FORBIDDEN You were just elected admin, you can't add or modify other admins yet
|
||||||
FRESH_CHANGE_PHONE_FORBIDDEN You can't change your phone number because your session was logged-in recently
|
FRESH_CHANGE_PHONE_FORBIDDEN You can't change your phone number because your session was logged-in recently
|
||||||
FRESH_RESET_AUTHORISATION_FORBIDDEN You can't terminate other authorized sessions because the current was logged-in recently
|
FRESH_RESET_AUTHORISATION_FORBIDDEN You can't terminate other authorized sessions because the current was logged-in recently
|
||||||
|
GIFTCODE_NOT_ALLOWED Giftcode not allowed
|
||||||
|
INVITE_HASH_EXPIRED The chat the user tried to join has expired and is not valid anymore
|
||||||
PHONE_NUMBER_INVALID The phone number is invalid
|
PHONE_NUMBER_INVALID The phone number is invalid
|
||||||
PHONE_PASSWORD_FLOOD You have tried to log-in too many times
|
PHONE_PASSWORD_FLOOD You have tried to log-in too many times
|
||||||
|
PREMIUM_CURRENTLY_UNAVAILABLE Premium currently unavailable
|
||||||
|
PREVIOUS_CHAT_IMPORT_ACTIVE_WAIT_XMIN Similar to a flood wait, must wait {value} minutes
|
||||||
|
SEND_CODE_UNAVAILABLE Returned when all available options for this type of number were already used (e.g. flash-call, then SMS, then this error might be returned to trigger a second resend)
|
||||||
|
PREMIUM_GIFTCODE_WAS_REFUNDED This gift code can't be redeemed because the giveaway organizer requested a refund
|
||||||
STICKERSET_INVALID The sticker set is invalid
|
STICKERSET_INVALID The sticker set is invalid
|
||||||
STICKERSET_OWNER_ANONYMOUS This sticker set can't be used as the group's sticker set because it was created by one of its anonymous admins
|
STICKERSET_OWNER_ANONYMOUS This sticker set can't be used as the group's sticker set because it was created by one of its anonymous admins
|
||||||
|
UPDATE_APP_TO_LOGIN Update app to login
|
||||||
|
USERPIC_PRIVACY_REQUIRED You need to disable privacy settings for your profile picture in order to make your geolocation public
|
||||||
USERPIC_UPLOAD_REQUIRED You must have a profile picture to publish your geolocation
|
USERPIC_UPLOAD_REQUIRED You must have a profile picture to publish your geolocation
|
||||||
USER_RESTRICTED You are limited/restricted. You can't perform this action
|
USER_RESTRICTED You are limited/restricted. You can't perform this action
|
||||||
|
|
|
||||||
|
|
|
@ -2,5 +2,8 @@ id message
|
||||||
2FA_CONFIRM_WAIT_X A wait of {value} seconds is required because this account is active and protected by a 2FA password
|
2FA_CONFIRM_WAIT_X A wait of {value} seconds is required because this account is active and protected by a 2FA password
|
||||||
FLOOD_TEST_PHONE_WAIT_X A wait of {value} seconds is required in the test servers
|
FLOOD_TEST_PHONE_WAIT_X A wait of {value} seconds is required in the test servers
|
||||||
FLOOD_WAIT_X A wait of {value} seconds is required
|
FLOOD_WAIT_X A wait of {value} seconds is required
|
||||||
SLOWMODE_WAIT_X A wait of {value} seconds is required to send messages in this chat.
|
FLOOD_PREMIUM_WAIT_X A wait of {value} seconds is required
|
||||||
|
PREMIUM_SUB_ACTIVE_UNTIL_X A wait of {value} seconds is required
|
||||||
|
SLOWMODE_WAIT_X A wait of {value} seconds is required to send messages in this chat
|
||||||
|
STORY_SEND_FLOOD_X A wait of {value} seconds is required to continue posting stories
|
||||||
TAKEOUT_INIT_DELAY_X You have to confirm the data export request using one of your mobile devices or wait {value} seconds
|
TAKEOUT_INIT_DELAY_X You have to confirm the data export request using one of your mobile devices or wait {value} seconds
|
||||||
|
|
|
@ -38,8 +38,11 @@ RPC_MCGET_FAIL Telegram is having internal problems. Please try again later
|
||||||
SIGN_IN_FAILED Failure while signing in due to Telegram having internal problems. Please try again later
|
SIGN_IN_FAILED Failure while signing in due to Telegram having internal problems. Please try again later
|
||||||
STORAGE_CHECK_FAILED Server storage check failed due to Telegram having internal problems. Please try again later
|
STORAGE_CHECK_FAILED Server storage check failed due to Telegram having internal problems. Please try again later
|
||||||
STORE_INVALID_SCALAR_TYPE Telegram is having internal problems. Please try again later
|
STORE_INVALID_SCALAR_TYPE Telegram is having internal problems. Please try again later
|
||||||
|
TIMEOUT A timeout occurred while fetching data from the worker
|
||||||
UNKNOWN_METHOD The method you tried to call cannot be called on non-CDN DCs
|
UNKNOWN_METHOD The method you tried to call cannot be called on non-CDN DCs
|
||||||
UPLOAD_NO_VOLUME Telegram is having internal problems. Please try again later
|
UPLOAD_NO_VOLUME Telegram is having internal problems. Please try again later
|
||||||
VOLUME_LOC_NOT_FOUND Telegram is having internal problems. Please try again later
|
VOLUME_LOC_NOT_FOUND Telegram is having internal problems. Please try again later
|
||||||
WORKER_BUSY_TOO_LONG_RETRY Server workers are too busy right now due to Telegram having internal problems. Please try again later
|
WORKER_BUSY_TOO_LONG_RETRY Server workers are too busy right now due to Telegram having internal problems. Please try again later
|
||||||
WP_ID_GENERATE_FAILED Telegram is having internal problems. Please try again later
|
WP_ID_GENERATE_FAILED Telegram is having internal problems. Please try again later
|
||||||
|
FILE_WRITE_FAILED Telegram is having internal problems. Please try again later
|
||||||
|
CHAT_FROM_CALL_CHANGED
|
||||||
|
|
|
||||||
|
|
|
@ -1,3 +1,4 @@
|
||||||
id message
|
id message
|
||||||
ApiCallError Telegram is having internal problems. Please try again later.
|
ApiCallError Telegram is having internal problems. Please try again later.
|
||||||
Timeout Telegram is having internal problems. Please try again later.
|
Timeout Telegram is having internal problems. Please try again later.
|
||||||
|
Timedout Telegram is having internal problems. Please try again later.
|
||||||
|
|
|
@ -1,6 +0,0 @@
|
||||||
-r requirements.txt
|
|
||||||
|
|
||||||
pytest
|
|
||||||
pytest-asyncio
|
|
||||||
pytest-cov
|
|
||||||
twine
|
|
||||||
7
docs/source/_includes/usable-by/bots.rst
Normal file
7
docs/source/_includes/usable-by/bots.rst
Normal file
|
|
@ -0,0 +1,7 @@
|
||||||
|
.. raw:: html
|
||||||
|
|
||||||
|
<blockquote>
|
||||||
|
<strong>Usable by</strong>
|
||||||
|
<span class="usable-by"><i class="fa-solid fa-xmark" style="color: var(--color-red)"></i> Users</span>
|
||||||
|
<span class="usable-by"><i class="fa-solid fa-check" style="color: var(--color-green)"></i> Bots</span>
|
||||||
|
</blockquote>
|
||||||
7
docs/source/_includes/usable-by/users-bots.rst
Normal file
7
docs/source/_includes/usable-by/users-bots.rst
Normal file
|
|
@ -0,0 +1,7 @@
|
||||||
|
.. raw:: html
|
||||||
|
|
||||||
|
<blockquote>
|
||||||
|
<strong>Usable by</strong>
|
||||||
|
<span class="usable-by"><i class="fa-solid fa-check" style="color: var(--color-green)"></i> Users</span>
|
||||||
|
<span class="usable-by"><i class="fa-solid fa-check" style="color: var(--color-green)"></i> Bots</span>
|
||||||
|
</blockquote>
|
||||||
7
docs/source/_includes/usable-by/users.rst
Normal file
7
docs/source/_includes/usable-by/users.rst
Normal file
|
|
@ -0,0 +1,7 @@
|
||||||
|
.. raw:: html
|
||||||
|
|
||||||
|
<blockquote>
|
||||||
|
<strong>Usable by</strong>
|
||||||
|
<span class="usable-by"><i class="fa-solid fa-check" style="color: var(--color-green)"></i> Users</span>
|
||||||
|
<span class="usable-by"><i class="fa-solid fa-xmark" style="color: var(--color-red)"></i> Bots</span>
|
||||||
|
</blockquote>
|
||||||
1
docs/source/_static/css/all.min.css
vendored
Normal file
1
docs/source/_static/css/all.min.css
vendored
Normal file
|
|
@ -0,0 +1 @@
|
||||||
|
@import url("https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.1.2/css/all.min.css");
|
||||||
24
docs/source/_static/css/custom.css
Normal file
24
docs/source/_static/css/custom.css
Normal file
|
|
@ -0,0 +1,24 @@
|
||||||
|
body{
|
||||||
|
--color-green: darkgreen;
|
||||||
|
--color-red: darkred;
|
||||||
|
}
|
||||||
|
|
||||||
|
.usable-by {
|
||||||
|
border: 1px ;
|
||||||
|
border-radius: .2em;
|
||||||
|
padding: 2px 5px;
|
||||||
|
background-color: #1a1c1e;
|
||||||
|
}
|
||||||
|
|
||||||
|
a .pre{
|
||||||
|
color:lightgrey;
|
||||||
|
}
|
||||||
|
|
||||||
|
.md-main a {
|
||||||
|
text-decoration: underline;
|
||||||
|
color:lightgrey;
|
||||||
|
}
|
||||||
|
|
||||||
|
.md-sidebar a {
|
||||||
|
text-decoration: none;
|
||||||
|
}
|
||||||
24
docs/source/api/client.rst
Normal file
24
docs/source/api/client.rst
Normal file
|
|
@ -0,0 +1,24 @@
|
||||||
|
Pyrofork Client
|
||||||
|
===============
|
||||||
|
|
||||||
|
You have entered the API Reference section where you can find detailed information about Pyrofork's API. The main Client
|
||||||
|
class, all available methods and types, filters, handlers, decorators and bound-methods detailed descriptions can be
|
||||||
|
found starting from this page.
|
||||||
|
|
||||||
|
This page is about the Client class, which exposes high-level methods for an easy access to the API.
|
||||||
|
|
||||||
|
.. code-block:: python
|
||||||
|
|
||||||
|
from pyrogram import Client
|
||||||
|
|
||||||
|
app = Client("my_account")
|
||||||
|
|
||||||
|
with app:
|
||||||
|
app.send_message("me", "Hi!")
|
||||||
|
|
||||||
|
-----
|
||||||
|
|
||||||
|
Details
|
||||||
|
-------
|
||||||
|
|
||||||
|
.. autoclass:: pyrogram.Client()
|
||||||
88
docs/source/api/decorators.rst
Normal file
88
docs/source/api/decorators.rst
Normal file
|
|
@ -0,0 +1,88 @@
|
||||||
|
Decorators
|
||||||
|
==========
|
||||||
|
|
||||||
|
Decorators are able to register callback functions for handling updates in a much easier and cleaner way compared to
|
||||||
|
:doc:`Handlers <handlers>`; they do so by instantiating the correct handler and calling
|
||||||
|
:meth:`~pyrogram.Client.add_handler` automatically. All you need to do is adding the decorators on top of your
|
||||||
|
functions.
|
||||||
|
|
||||||
|
.. code-block:: python
|
||||||
|
|
||||||
|
from pyrogram import Client
|
||||||
|
|
||||||
|
app = Client("my_account")
|
||||||
|
|
||||||
|
|
||||||
|
@app.on_message()
|
||||||
|
def log(client, message):
|
||||||
|
print(message)
|
||||||
|
|
||||||
|
|
||||||
|
app.run()
|
||||||
|
|
||||||
|
.. contents:: Contents
|
||||||
|
:backlinks: none
|
||||||
|
:depth: 1
|
||||||
|
:local:
|
||||||
|
|
||||||
|
-----
|
||||||
|
|
||||||
|
.. currentmodule:: pyrogram
|
||||||
|
|
||||||
|
Index
|
||||||
|
-----
|
||||||
|
|
||||||
|
.. hlist::
|
||||||
|
:columns: 3
|
||||||
|
|
||||||
|
- :meth:`~Client.on_bot_business_connect`
|
||||||
|
- :meth:`~Client.on_message`
|
||||||
|
- :meth:`~Client.on_bot_business_message`
|
||||||
|
- :meth:`~Client.on_edited_message`
|
||||||
|
- :meth:`~Client.on_edited_bot_business_message`
|
||||||
|
- :meth:`~Client.on_callback_query`
|
||||||
|
- :meth:`~Client.on_shipping_query`
|
||||||
|
- :meth:`~Client.on_pre_checkout_query`
|
||||||
|
- :meth:`~Client.on_message_reaction_updated`
|
||||||
|
- :meth:`~Client.on_message_reaction_count_updated`
|
||||||
|
- :meth:`~Client.on_inline_query`
|
||||||
|
- :meth:`~Client.on_chosen_inline_result`
|
||||||
|
- :meth:`~Client.on_chat_member_updated`
|
||||||
|
- :meth:`~Client.on_chat_join_request`
|
||||||
|
- :meth:`~Client.on_deleted_messages`
|
||||||
|
- :meth:`~Client.on_deleted_bot_business_message`
|
||||||
|
- :meth:`~Client.on_user_status`
|
||||||
|
- :meth:`~Client.on_story`
|
||||||
|
- :meth:`~Client.on_poll`
|
||||||
|
- :meth:`~Client.on_disconnect`
|
||||||
|
- :meth:`~Client.on_raw_update`
|
||||||
|
- :meth:`~Client.on_error`
|
||||||
|
|
||||||
|
-----
|
||||||
|
|
||||||
|
Details
|
||||||
|
-------
|
||||||
|
|
||||||
|
.. Decorators
|
||||||
|
.. autodecorator:: pyrogram.Client.on_bot_business_connect()
|
||||||
|
.. autodecorator:: pyrogram.Client.on_message()
|
||||||
|
.. autodecorator:: pyrogram.Client.on_bot_business_message()
|
||||||
|
.. autodecorator:: pyrogram.Client.on_edited_message()
|
||||||
|
.. autodecorator:: pyrogram.Client.on_edited_bot_business_message()
|
||||||
|
.. autodecorator:: pyrogram.Client.on_callback_query()
|
||||||
|
.. autodecorator:: pyrogram.Client.on_shipping_query()
|
||||||
|
.. autodecorator:: pyrogram.Client.on_pre_checkout_query()
|
||||||
|
.. autodecorator:: pyrogram.Client.on_message_reaction_updated()
|
||||||
|
.. autodecorator:: pyrogram.Client.on_message_reaction_count_updated()
|
||||||
|
.. autodecorator:: pyrogram.Client.on_inline_query()
|
||||||
|
.. autodecorator:: pyrogram.Client.on_chosen_inline_result()
|
||||||
|
.. autodecorator:: pyrogram.Client.on_chat_member_updated()
|
||||||
|
.. autodecorator:: pyrogram.Client.on_chat_join_request()
|
||||||
|
.. autodecorator:: pyrogram.Client.on_deleted_messages()
|
||||||
|
.. autodecorator:: pyrogram.Client.on_deleted_bot_business_message()
|
||||||
|
.. autodecorator:: pyrogram.Client.on_user_status()
|
||||||
|
.. autodecorator:: pyrogram.Client.on_story()
|
||||||
|
.. autodecorator:: pyrogram.Client.on_poll()
|
||||||
|
.. autodecorator:: pyrogram.Client.on_disconnect()
|
||||||
|
.. autodecorator:: pyrogram.Client.on_raw_update()
|
||||||
|
.. autodecorator:: pyrogram.Client.on_error()
|
||||||
8
docs/source/api/enums/BusinessSchedule.rst
Normal file
8
docs/source/api/enums/BusinessSchedule.rst
Normal file
|
|
@ -0,0 +1,8 @@
|
||||||
|
BusinessSchedule
|
||||||
|
==========
|
||||||
|
|
||||||
|
.. autoclass:: pyrogram.enums.BusinessSchedule()
|
||||||
|
:members:
|
||||||
|
|
||||||
|
.. raw:: html
|
||||||
|
:file: ./cleanup.html
|
||||||
8
docs/source/api/enums/ChatAction.rst
Normal file
8
docs/source/api/enums/ChatAction.rst
Normal file
|
|
@ -0,0 +1,8 @@
|
||||||
|
ChatAction
|
||||||
|
==========
|
||||||
|
|
||||||
|
.. autoclass:: pyrogram.enums.ChatAction()
|
||||||
|
:members:
|
||||||
|
|
||||||
|
.. raw:: html
|
||||||
|
:file: ./cleanup.html
|
||||||
8
docs/source/api/enums/ChatEventAction.rst
Normal file
8
docs/source/api/enums/ChatEventAction.rst
Normal file
|
|
@ -0,0 +1,8 @@
|
||||||
|
ChatEventAction
|
||||||
|
===============
|
||||||
|
|
||||||
|
.. autoclass:: pyrogram.enums.ChatEventAction()
|
||||||
|
:members:
|
||||||
|
|
||||||
|
.. raw:: html
|
||||||
|
:file: ./cleanup.html
|
||||||
8
docs/source/api/enums/ChatJoinType.rst
Normal file
8
docs/source/api/enums/ChatJoinType.rst
Normal file
|
|
@ -0,0 +1,8 @@
|
||||||
|
ChatJoinType
|
||||||
|
==========
|
||||||
|
|
||||||
|
.. autoclass:: pyrogram.enums.ChatJoinType()
|
||||||
|
:members:
|
||||||
|
|
||||||
|
.. raw:: html
|
||||||
|
:file: ./cleanup.html
|
||||||
8
docs/source/api/enums/ChatMemberStatus.rst
Normal file
8
docs/source/api/enums/ChatMemberStatus.rst
Normal file
|
|
@ -0,0 +1,8 @@
|
||||||
|
ChatMemberStatus
|
||||||
|
================
|
||||||
|
|
||||||
|
.. autoclass:: pyrogram.enums.ChatMemberStatus()
|
||||||
|
:members:
|
||||||
|
|
||||||
|
.. raw:: html
|
||||||
|
:file: ./cleanup.html
|
||||||
8
docs/source/api/enums/ChatMembersFilter.rst
Normal file
8
docs/source/api/enums/ChatMembersFilter.rst
Normal file
|
|
@ -0,0 +1,8 @@
|
||||||
|
ChatMembersFilter
|
||||||
|
=================
|
||||||
|
|
||||||
|
.. autoclass:: pyrogram.enums.ChatMembersFilter()
|
||||||
|
:members:
|
||||||
|
|
||||||
|
.. raw:: html
|
||||||
|
:file: ./cleanup.html
|
||||||
8
docs/source/api/enums/ChatType.rst
Normal file
8
docs/source/api/enums/ChatType.rst
Normal file
|
|
@ -0,0 +1,8 @@
|
||||||
|
ChatType
|
||||||
|
========
|
||||||
|
|
||||||
|
.. autoclass:: pyrogram.enums.ChatType()
|
||||||
|
:members:
|
||||||
|
|
||||||
|
.. raw:: html
|
||||||
|
:file: ./cleanup.html
|
||||||
8
docs/source/api/enums/ClientPlatform.rst
Normal file
8
docs/source/api/enums/ClientPlatform.rst
Normal file
|
|
@ -0,0 +1,8 @@
|
||||||
|
ClientPlatform
|
||||||
|
==========
|
||||||
|
|
||||||
|
.. autoclass:: pyrogram.enums.ClientPlatform()
|
||||||
|
:members:
|
||||||
|
|
||||||
|
.. raw:: html
|
||||||
|
:file: ./cleanup.html
|
||||||
8
docs/source/api/enums/FolderColor.rst
Normal file
8
docs/source/api/enums/FolderColor.rst
Normal file
|
|
@ -0,0 +1,8 @@
|
||||||
|
FolderColor
|
||||||
|
===========
|
||||||
|
|
||||||
|
.. autoclass:: pyrogram.enums.FolderColor()
|
||||||
|
:members:
|
||||||
|
|
||||||
|
.. raw:: html
|
||||||
|
:file: ./cleanup.html
|
||||||
8
docs/source/api/enums/GiftAttributeType.rst
Normal file
8
docs/source/api/enums/GiftAttributeType.rst
Normal file
|
|
@ -0,0 +1,8 @@
|
||||||
|
GiftAttributeType
|
||||||
|
==========
|
||||||
|
|
||||||
|
.. autoclass:: pyrogram.enums.GiftAttributeType()
|
||||||
|
:members:
|
||||||
|
|
||||||
|
.. raw:: html
|
||||||
|
:file: ./cleanup.html
|
||||||
8
docs/source/api/enums/GiftForResaleOrder.rst
Normal file
8
docs/source/api/enums/GiftForResaleOrder.rst
Normal file
|
|
@ -0,0 +1,8 @@
|
||||||
|
GiftAttributeType
|
||||||
|
=================
|
||||||
|
|
||||||
|
.. autoclass:: pyrogram.enums.GiftForResaleOrder()
|
||||||
|
:members:
|
||||||
|
|
||||||
|
.. raw:: html
|
||||||
|
:file: ./cleanup.html
|
||||||
8
docs/source/api/enums/ListenerTypes.rst
Normal file
8
docs/source/api/enums/ListenerTypes.rst
Normal file
|
|
@ -0,0 +1,8 @@
|
||||||
|
ListenerTypes
|
||||||
|
=============
|
||||||
|
|
||||||
|
.. autoclass:: pyrogram.enums.ListenerTypes()
|
||||||
|
:members:
|
||||||
|
|
||||||
|
.. raw:: html
|
||||||
|
:file: ./cleanup.html
|
||||||
8
docs/source/api/enums/MessageEntityType.rst
Normal file
8
docs/source/api/enums/MessageEntityType.rst
Normal file
|
|
@ -0,0 +1,8 @@
|
||||||
|
MessageEntityType
|
||||||
|
=================
|
||||||
|
|
||||||
|
.. autoclass:: pyrogram.enums.MessageEntityType()
|
||||||
|
:members:
|
||||||
|
|
||||||
|
.. raw:: html
|
||||||
|
:file: ./cleanup.html
|
||||||
8
docs/source/api/enums/MessageMediaType.rst
Normal file
8
docs/source/api/enums/MessageMediaType.rst
Normal file
|
|
@ -0,0 +1,8 @@
|
||||||
|
MessageMediaType
|
||||||
|
================
|
||||||
|
|
||||||
|
.. autoclass:: pyrogram.enums.MessageMediaType()
|
||||||
|
:members:
|
||||||
|
|
||||||
|
.. raw:: html
|
||||||
|
:file: ./cleanup.html
|
||||||
8
docs/source/api/enums/MessageOriginType.rst
Normal file
8
docs/source/api/enums/MessageOriginType.rst
Normal file
|
|
@ -0,0 +1,8 @@
|
||||||
|
MessageOriginType
|
||||||
|
=================
|
||||||
|
|
||||||
|
.. autoclass:: pyrogram.enums.MessageOriginType()
|
||||||
|
:members:
|
||||||
|
|
||||||
|
.. raw:: html
|
||||||
|
:file: ./cleanup.html
|
||||||
8
docs/source/api/enums/MessageServiceType.rst
Normal file
8
docs/source/api/enums/MessageServiceType.rst
Normal file
|
|
@ -0,0 +1,8 @@
|
||||||
|
MessageServiceType
|
||||||
|
==================
|
||||||
|
|
||||||
|
.. autoclass:: pyrogram.enums.MessageServiceType()
|
||||||
|
:members:
|
||||||
|
|
||||||
|
.. raw:: html
|
||||||
|
:file: ./cleanup.html
|
||||||
8
docs/source/api/enums/MessagesFilter.rst
Normal file
8
docs/source/api/enums/MessagesFilter.rst
Normal file
|
|
@ -0,0 +1,8 @@
|
||||||
|
MessagesFilter
|
||||||
|
==============
|
||||||
|
|
||||||
|
.. autoclass:: pyrogram.enums.MessagesFilter()
|
||||||
|
:members:
|
||||||
|
|
||||||
|
.. raw:: html
|
||||||
|
:file: ./cleanup.html
|
||||||
8
docs/source/api/enums/NextCodeType.rst
Normal file
8
docs/source/api/enums/NextCodeType.rst
Normal file
|
|
@ -0,0 +1,8 @@
|
||||||
|
NextCodeType
|
||||||
|
============
|
||||||
|
|
||||||
|
.. autoclass:: pyrogram.enums.NextCodeType()
|
||||||
|
:members:
|
||||||
|
|
||||||
|
.. raw:: html
|
||||||
|
:file: ./cleanup.html
|
||||||
8
docs/source/api/enums/ParseMode.rst
Normal file
8
docs/source/api/enums/ParseMode.rst
Normal file
|
|
@ -0,0 +1,8 @@
|
||||||
|
ParseMode
|
||||||
|
=========
|
||||||
|
|
||||||
|
.. autoclass:: pyrogram.enums.ParseMode()
|
||||||
|
:members:
|
||||||
|
|
||||||
|
.. raw:: html
|
||||||
|
:file: ./cleanup.html
|
||||||
8
docs/source/api/enums/PollType.rst
Normal file
8
docs/source/api/enums/PollType.rst
Normal file
|
|
@ -0,0 +1,8 @@
|
||||||
|
PollType
|
||||||
|
========
|
||||||
|
|
||||||
|
.. autoclass:: pyrogram.enums.PollType()
|
||||||
|
:members:
|
||||||
|
|
||||||
|
.. raw:: html
|
||||||
|
:file: ./cleanup.html
|
||||||
8
docs/source/api/enums/ProfileColor.rst
Normal file
8
docs/source/api/enums/ProfileColor.rst
Normal file
|
|
@ -0,0 +1,8 @@
|
||||||
|
ProfileColor
|
||||||
|
==========
|
||||||
|
|
||||||
|
.. autoclass:: pyrogram.enums.ProfileColor()
|
||||||
|
:members:
|
||||||
|
|
||||||
|
.. raw:: html
|
||||||
|
:file: ./cleanup.html
|
||||||
8
docs/source/api/enums/ReactionType.rst
Normal file
8
docs/source/api/enums/ReactionType.rst
Normal file
|
|
@ -0,0 +1,8 @@
|
||||||
|
ReactionType
|
||||||
|
============
|
||||||
|
|
||||||
|
.. autoclass:: pyrogram.enums.ReactionType()
|
||||||
|
:members:
|
||||||
|
|
||||||
|
.. raw:: html
|
||||||
|
:file: ./cleanup.html
|
||||||
8
docs/source/api/enums/ReplyColor.rst
Normal file
8
docs/source/api/enums/ReplyColor.rst
Normal file
|
|
@ -0,0 +1,8 @@
|
||||||
|
ReplyColor
|
||||||
|
==========
|
||||||
|
|
||||||
|
.. autoclass:: pyrogram.enums.ReplyColor()
|
||||||
|
:members:
|
||||||
|
|
||||||
|
.. raw:: html
|
||||||
|
:file: ./cleanup.html
|
||||||
8
docs/source/api/enums/SentCodeType.rst
Normal file
8
docs/source/api/enums/SentCodeType.rst
Normal file
|
|
@ -0,0 +1,8 @@
|
||||||
|
SentCodeType
|
||||||
|
============
|
||||||
|
|
||||||
|
.. autoclass:: pyrogram.enums.SentCodeType()
|
||||||
|
:members:
|
||||||
|
|
||||||
|
.. raw:: html
|
||||||
|
:file: ./cleanup.html
|
||||||
8
docs/source/api/enums/StoriesPrivacyRules.rst
Normal file
8
docs/source/api/enums/StoriesPrivacyRules.rst
Normal file
|
|
@ -0,0 +1,8 @@
|
||||||
|
StoriesPrivacyRules
|
||||||
|
===================
|
||||||
|
|
||||||
|
.. autoclass:: pyrogram.enums.StoriesPrivacyRules()
|
||||||
|
:members:
|
||||||
|
|
||||||
|
.. raw:: html
|
||||||
|
:file: ./cleanup.html
|
||||||
8
docs/source/api/enums/StoryPrivacy.rst
Normal file
8
docs/source/api/enums/StoryPrivacy.rst
Normal file
|
|
@ -0,0 +1,8 @@
|
||||||
|
StoryPrivacy
|
||||||
|
============
|
||||||
|
|
||||||
|
.. autoclass:: pyrogram.enums.StoryPrivacy()
|
||||||
|
:members:
|
||||||
|
|
||||||
|
.. raw:: html
|
||||||
|
:file: ./cleanup.html
|
||||||
8
docs/source/api/enums/UserStatus.rst
Normal file
8
docs/source/api/enums/UserStatus.rst
Normal file
|
|
@ -0,0 +1,8 @@
|
||||||
|
UserStatus
|
||||||
|
==========
|
||||||
|
|
||||||
|
.. autoclass:: pyrogram.enums.UserStatus()
|
||||||
|
:members:
|
||||||
|
|
||||||
|
.. raw:: html
|
||||||
|
:file: ./cleanup.html
|
||||||
9
docs/source/api/enums/cleanup.html
Normal file
9
docs/source/api/enums/cleanup.html
Normal file
|
|
@ -0,0 +1,9 @@
|
||||||
|
<script>
|
||||||
|
document
|
||||||
|
.querySelectorAll("em.property")
|
||||||
|
.forEach((elem, i) => i !== 0 ? elem.remove() : true)
|
||||||
|
|
||||||
|
document
|
||||||
|
.querySelectorAll("a.headerlink")
|
||||||
|
.forEach((elem, i) => [0, 1].includes(i) ? true : elem.remove())
|
||||||
|
</script>
|
||||||
69
docs/source/api/enums/index.rst
Normal file
69
docs/source/api/enums/index.rst
Normal file
|
|
@ -0,0 +1,69 @@
|
||||||
|
Enumerations
|
||||||
|
============
|
||||||
|
|
||||||
|
This page is about Pyrofork enumerations.
|
||||||
|
Enumerations are types that hold a group of related values to be used whenever a constant value is required.
|
||||||
|
They will help you deal with those values in a type-safe way and also enable code completion so that you can be sure
|
||||||
|
to apply only a valid value among the expected ones.
|
||||||
|
|
||||||
|
-----
|
||||||
|
|
||||||
|
.. currentmodule:: pyrogram.enums
|
||||||
|
|
||||||
|
.. autosummary::
|
||||||
|
:nosignatures:
|
||||||
|
|
||||||
|
BusinessSchedule
|
||||||
|
ChatAction
|
||||||
|
ChatEventAction
|
||||||
|
ChatJoinType
|
||||||
|
ChatMemberStatus
|
||||||
|
ChatMembersFilter
|
||||||
|
ChatType
|
||||||
|
ClientPlatform
|
||||||
|
FolderColor
|
||||||
|
GiftAttributeType
|
||||||
|
ListenerTypes
|
||||||
|
MessageEntityType
|
||||||
|
MessageMediaType
|
||||||
|
MessageServiceType
|
||||||
|
MessagesFilter
|
||||||
|
ParseMode
|
||||||
|
PollType
|
||||||
|
ProfileColor
|
||||||
|
SentCodeType
|
||||||
|
NextCodeType
|
||||||
|
UserStatus
|
||||||
|
ReactionType
|
||||||
|
ReplyColor
|
||||||
|
StoriesPrivacyRules
|
||||||
|
StoryPrivacy
|
||||||
|
|
||||||
|
.. toctree::
|
||||||
|
:hidden:
|
||||||
|
|
||||||
|
BusinessSchedule
|
||||||
|
ChatAction
|
||||||
|
ChatEventAction
|
||||||
|
ChatJoinType
|
||||||
|
ChatMemberStatus
|
||||||
|
ChatMembersFilter
|
||||||
|
ChatType
|
||||||
|
ClientPlatform
|
||||||
|
FolderColor
|
||||||
|
GiftAttributeType
|
||||||
|
ListenerTypes
|
||||||
|
MessageEntityType
|
||||||
|
MessageMediaType
|
||||||
|
MessageServiceType
|
||||||
|
MessagesFilter
|
||||||
|
ParseMode
|
||||||
|
PollType
|
||||||
|
ProfileColor
|
||||||
|
SentCodeType
|
||||||
|
NextCodeType
|
||||||
|
UserStatus
|
||||||
|
ReactionType
|
||||||
|
ReplyColor
|
||||||
|
StoriesPrivacyRules
|
||||||
|
StoryPrivacy
|
||||||
7
docs/source/api/errors/bad-request.rst
Normal file
7
docs/source/api/errors/bad-request.rst
Normal file
|
|
@ -0,0 +1,7 @@
|
||||||
|
400 - BadRequest
|
||||||
|
----------------
|
||||||
|
|
||||||
|
.. csv-table::
|
||||||
|
:file: ../../../../compiler/errors/source/400_BAD_REQUEST.tsv
|
||||||
|
:delim: tab
|
||||||
|
:header-rows: 1
|
||||||
7
docs/source/api/errors/flood.rst
Normal file
7
docs/source/api/errors/flood.rst
Normal file
|
|
@ -0,0 +1,7 @@
|
||||||
|
420 - Flood
|
||||||
|
-----------
|
||||||
|
|
||||||
|
.. csv-table::
|
||||||
|
:file: ../../../../compiler/errors/source/420_FLOOD.tsv
|
||||||
|
:delim: tab
|
||||||
|
:header-rows: 1
|
||||||
7
docs/source/api/errors/forbidden.rst
Normal file
7
docs/source/api/errors/forbidden.rst
Normal file
|
|
@ -0,0 +1,7 @@
|
||||||
|
403 - Forbidden
|
||||||
|
---------------
|
||||||
|
|
||||||
|
.. csv-table::
|
||||||
|
:file: ../../../../compiler/errors/source/403_FORBIDDEN.tsv
|
||||||
|
:delim: tab
|
||||||
|
:header-rows: 1
|
||||||
37
docs/source/api/errors/index.rst
Normal file
37
docs/source/api/errors/index.rst
Normal file
|
|
@ -0,0 +1,37 @@
|
||||||
|
RPC Errors
|
||||||
|
==========
|
||||||
|
|
||||||
|
All Pyrofork API errors live inside the ``errors`` sub-package: ``pyrogram.errors``.
|
||||||
|
The errors ids listed here are shown as *UPPER_SNAKE_CASE*, but the actual exception names to import from Pyrofork
|
||||||
|
follow the usual *PascalCase* convention.
|
||||||
|
|
||||||
|
.. code-block:: python
|
||||||
|
|
||||||
|
from pyrogram.errors import FloodWait
|
||||||
|
|
||||||
|
try:
|
||||||
|
...
|
||||||
|
except FloodWait as e:
|
||||||
|
...
|
||||||
|
|
||||||
|
.. hlist::
|
||||||
|
:columns: 1
|
||||||
|
|
||||||
|
- :doc:`see-other`
|
||||||
|
- :doc:`bad-request`
|
||||||
|
- :doc:`unauthorized`
|
||||||
|
- :doc:`forbidden`
|
||||||
|
- :doc:`not-acceptable`
|
||||||
|
- :doc:`flood`
|
||||||
|
- :doc:`internal-server-error`
|
||||||
|
|
||||||
|
.. toctree::
|
||||||
|
:hidden:
|
||||||
|
|
||||||
|
see-other
|
||||||
|
bad-request
|
||||||
|
unauthorized
|
||||||
|
forbidden
|
||||||
|
not-acceptable
|
||||||
|
flood
|
||||||
|
internal-server-error
|
||||||
7
docs/source/api/errors/internal-server-error.rst
Normal file
7
docs/source/api/errors/internal-server-error.rst
Normal file
|
|
@ -0,0 +1,7 @@
|
||||||
|
500 - InternalServerError
|
||||||
|
-------------------------
|
||||||
|
|
||||||
|
.. csv-table::
|
||||||
|
:file: ../../../../compiler/errors/source/500_INTERNAL_SERVER_ERROR.tsv
|
||||||
|
:delim: tab
|
||||||
|
:header-rows: 1
|
||||||
7
docs/source/api/errors/not-acceptable.rst
Normal file
7
docs/source/api/errors/not-acceptable.rst
Normal file
|
|
@ -0,0 +1,7 @@
|
||||||
|
406 - NotAcceptable
|
||||||
|
-------------------
|
||||||
|
|
||||||
|
.. csv-table::
|
||||||
|
:file: ../../../../compiler/errors/source/406_NOT_ACCEPTABLE.tsv
|
||||||
|
:delim: tab
|
||||||
|
:header-rows: 1
|
||||||
7
docs/source/api/errors/see-other.rst
Normal file
7
docs/source/api/errors/see-other.rst
Normal file
|
|
@ -0,0 +1,7 @@
|
||||||
|
303 - SeeOther
|
||||||
|
--------------
|
||||||
|
|
||||||
|
.. csv-table::
|
||||||
|
:file: ../../../../compiler/errors/source/303_SEE_OTHER.tsv
|
||||||
|
:delim: tab
|
||||||
|
:header-rows: 1
|
||||||
7
docs/source/api/errors/unauthorized.rst
Normal file
7
docs/source/api/errors/unauthorized.rst
Normal file
|
|
@ -0,0 +1,7 @@
|
||||||
|
401 - Unauthorized
|
||||||
|
------------------
|
||||||
|
|
||||||
|
.. csv-table::
|
||||||
|
:file: ../../../../compiler/errors/source/401_UNAUTHORIZED.tsv
|
||||||
|
:delim: tab
|
||||||
|
:header-rows: 1
|
||||||
11
docs/source/api/filters.rst
Normal file
11
docs/source/api/filters.rst
Normal file
|
|
@ -0,0 +1,11 @@
|
||||||
|
Update Filters
|
||||||
|
==============
|
||||||
|
|
||||||
|
Filters are objects that can be used to filter the content of incoming updates.
|
||||||
|
:doc:`Read more about how filters work <../topics/use-filters>`.
|
||||||
|
|
||||||
|
Details
|
||||||
|
-------
|
||||||
|
|
||||||
|
.. automodule:: pyrogram.filters
|
||||||
|
:members:
|
||||||
86
docs/source/api/handlers.rst
Normal file
86
docs/source/api/handlers.rst
Normal file
|
|
@ -0,0 +1,86 @@
|
||||||
|
Update Handlers
|
||||||
|
===============
|
||||||
|
|
||||||
|
Handlers are used to instruct Pyrofork about which kind of updates you'd like to handle with your callback functions.
|
||||||
|
For a much more convenient way of registering callback functions have a look at :doc:`Decorators <decorators>` instead.
|
||||||
|
|
||||||
|
.. code-block:: python
|
||||||
|
|
||||||
|
from pyrogram import Client
|
||||||
|
from pyrogram.handlers import MessageHandler
|
||||||
|
|
||||||
|
app = Client("my_account")
|
||||||
|
|
||||||
|
|
||||||
|
def dump(client, message):
|
||||||
|
print(message)
|
||||||
|
|
||||||
|
|
||||||
|
app.add_handler(MessageHandler(dump))
|
||||||
|
|
||||||
|
app.run()
|
||||||
|
|
||||||
|
.. contents:: Contents
|
||||||
|
:backlinks: none
|
||||||
|
:depth: 1
|
||||||
|
:local:
|
||||||
|
|
||||||
|
-----
|
||||||
|
|
||||||
|
.. currentmodule:: pyrogram.handlers
|
||||||
|
|
||||||
|
Index
|
||||||
|
-----
|
||||||
|
|
||||||
|
.. hlist::
|
||||||
|
:columns: 3
|
||||||
|
|
||||||
|
- :class:`BotBusinessConnectHandler`
|
||||||
|
- :class:`MessageHandler`
|
||||||
|
- :class:`BotBusinessMessageHandler`
|
||||||
|
- :class:`EditedMessageHandler`
|
||||||
|
- :class:`EditedBotBusinessMessageHandler`
|
||||||
|
- :class:`DeletedMessagesHandler`
|
||||||
|
- :class:`DeletedBotBusinessMessagesHandler`
|
||||||
|
- :class:`CallbackQueryHandler`
|
||||||
|
- :class:`PreCheckoutQueryHandler`
|
||||||
|
- :class:`ShippingQueryHandler`
|
||||||
|
- :class:`MessageReactionUpdatedHandler`
|
||||||
|
- :class:`MessageReactionCountUpdatedHandler`
|
||||||
|
- :class:`InlineQueryHandler`
|
||||||
|
- :class:`ChosenInlineResultHandler`
|
||||||
|
- :class:`ChatMemberUpdatedHandler`
|
||||||
|
- :class:`UserStatusHandler`
|
||||||
|
- :class:`StoryHandler`
|
||||||
|
- :class:`PollHandler`
|
||||||
|
- :class:`DisconnectHandler`
|
||||||
|
- :class:`RawUpdateHandler`
|
||||||
|
- :class:`ErrorHandler`
|
||||||
|
|
||||||
|
-----
|
||||||
|
|
||||||
|
Details
|
||||||
|
-------
|
||||||
|
|
||||||
|
.. Handlers
|
||||||
|
.. autoclass:: BotBusinessConnectHandler()
|
||||||
|
.. autoclass:: MessageHandler()
|
||||||
|
.. autoclass:: BotBusinessMessageHandler()
|
||||||
|
.. autoclass:: EditedMessageHandler()
|
||||||
|
.. autoclass:: EditedBotBusinessMessageHandler()
|
||||||
|
.. autoclass:: DeletedMessagesHandler()
|
||||||
|
.. autoclass:: DeletedBotBusinessMessagesHandler()
|
||||||
|
.. autoclass:: CallbackQueryHandler()
|
||||||
|
.. autoclass:: ShippingQueryHandler()
|
||||||
|
.. autoclass:: PreCheckoutQueryHandler()
|
||||||
|
.. autoclass:: MessageReactionUpdatedHandler()
|
||||||
|
.. autoclass:: MessageReactionCountUpdatedHandler()
|
||||||
|
.. autoclass:: InlineQueryHandler()
|
||||||
|
.. autoclass:: ChosenInlineResultHandler()
|
||||||
|
.. autoclass:: ChatMemberUpdatedHandler()
|
||||||
|
.. autoclass:: UserStatusHandler()
|
||||||
|
.. autoclass:: StoryHandler()
|
||||||
|
.. autoclass:: PollHandler()
|
||||||
|
.. autoclass:: DisconnectHandler()
|
||||||
|
.. autoclass:: RawUpdateHandler()
|
||||||
|
.. autoclass:: ErrorHandler()
|
||||||
123
docs/source/conf.py
Normal file
123
docs/source/conf.py
Normal file
|
|
@ -0,0 +1,123 @@
|
||||||
|
# Pyrofork - Telegram MTProto API Client Library for Python
|
||||||
|
# Copyright (C) 2017-present Dan <https://github.com/delivrance>
|
||||||
|
# Copyright (C) 2022-present Mayuri-Chan <https://github.com/Mayuri-Chan>
|
||||||
|
#
|
||||||
|
# This file is part of Pyrofork.
|
||||||
|
#
|
||||||
|
# Pyrofork is free software: you can redistribute it and/or modify
|
||||||
|
# it under the terms of the GNU Lesser General Public License as published
|
||||||
|
# by the Free Software Foundation, either version 3 of the License, or
|
||||||
|
# (at your option) any later version.
|
||||||
|
#
|
||||||
|
# Pyrofork is distributed in the hope that it will be useful,
|
||||||
|
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
# GNU Lesser General Public License for more details.
|
||||||
|
#
|
||||||
|
# You should have received a copy of the GNU Lesser General Public License
|
||||||
|
# along with Pyrofork. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
|
||||||
|
import os
|
||||||
|
import sys
|
||||||
|
|
||||||
|
sys.path.insert(0, os.path.abspath("../.."))
|
||||||
|
|
||||||
|
from pyrogram import __version__
|
||||||
|
|
||||||
|
from pygments.styles.friendly import FriendlyStyle
|
||||||
|
|
||||||
|
FriendlyStyle.background_color = "#f3f2f1"
|
||||||
|
|
||||||
|
project = "Pyrofork"
|
||||||
|
copyright = "2022-present, Mayuri-Chan"
|
||||||
|
author = "Mayuri-Chan"
|
||||||
|
|
||||||
|
version = ".".join(__version__.split(".")[:-1])
|
||||||
|
|
||||||
|
extensions = [
|
||||||
|
"sphinx.ext.autodoc",
|
||||||
|
"sphinx.ext.napoleon",
|
||||||
|
"sphinx.ext.autosummary",
|
||||||
|
"sphinx.ext.intersphinx",
|
||||||
|
"sphinx_copybutton",
|
||||||
|
"sphinx_immaterial"
|
||||||
|
]
|
||||||
|
|
||||||
|
intersphinx_mapping = {
|
||||||
|
"python": ("https://docs.python.org/3", None)
|
||||||
|
}
|
||||||
|
|
||||||
|
master_doc = "index"
|
||||||
|
source_suffix = ".rst"
|
||||||
|
autodoc_member_order = "bysource"
|
||||||
|
|
||||||
|
templates_path = ["../resources/templates"]
|
||||||
|
html_copy_source = False
|
||||||
|
|
||||||
|
napoleon_use_rtype = False
|
||||||
|
napoleon_use_param = False
|
||||||
|
|
||||||
|
pygments_style = "friendly"
|
||||||
|
|
||||||
|
copybutton_prompt_text = "$ "
|
||||||
|
|
||||||
|
suppress_warnings = ["image.not_readable"]
|
||||||
|
|
||||||
|
html_title = "Pyrofork Documentation"
|
||||||
|
html_theme = "sphinx_immaterial"
|
||||||
|
html_static_path = ["../resources/static","_static"]
|
||||||
|
html_show_sourcelink = True
|
||||||
|
html_show_copyright = False
|
||||||
|
html_theme_options = {
|
||||||
|
"icon": {
|
||||||
|
"repo": "fontawesome/brands/github",
|
||||||
|
"edit": "material/file-edit-outline",
|
||||||
|
},
|
||||||
|
"site_url": "https://pyrofork.wulan17.dev/",
|
||||||
|
"repo_url": "https://github.com/Mayuri-Chan/pyrofork/",
|
||||||
|
"repo_name": "pyrofork",
|
||||||
|
"globaltoc_collapse": True,
|
||||||
|
"features": [
|
||||||
|
"navigation.expand",
|
||||||
|
"navigation.tabs",
|
||||||
|
"navigation.sections",
|
||||||
|
"navigation.top",
|
||||||
|
"search.share",
|
||||||
|
"toc.follow",
|
||||||
|
"toc.sticky",
|
||||||
|
"content.tabs.link",
|
||||||
|
"announce.dismiss",
|
||||||
|
],
|
||||||
|
"palette": [
|
||||||
|
{
|
||||||
|
"media": "(prefers-color-scheme: dark)",
|
||||||
|
"scheme": "slate"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"toc_title_is_page_title": True,
|
||||||
|
"version_dropdown": True,
|
||||||
|
"version_info": [
|
||||||
|
{"version": "main", "title": "main", "aliases": ["latest"]},
|
||||||
|
{"version": "staging", "title": "staging", "aliases": []},
|
||||||
|
],
|
||||||
|
}
|
||||||
|
|
||||||
|
html_logo = "../resources/static/img/pyrogram.png"
|
||||||
|
html_favicon = "../resources/static/img/favicon.ico"
|
||||||
|
|
||||||
|
latex_engine = "xelatex"
|
||||||
|
latex_logo = "../resources/static/img/pyrogram.png"
|
||||||
|
|
||||||
|
latex_elements = {
|
||||||
|
"pointsize": "12pt",
|
||||||
|
"fontpkg": r"""
|
||||||
|
\setmainfont{Open Sans}
|
||||||
|
\setsansfont{Bitter}
|
||||||
|
\setmonofont{Ubuntu Mono}
|
||||||
|
"""
|
||||||
|
}
|
||||||
|
|
||||||
|
html_css_files = [
|
||||||
|
"css/custom.css",
|
||||||
|
"css/all.min.css",
|
||||||
|
]
|
||||||
11
docs/source/faq/client-started-but-nothing-happens.rst
Normal file
11
docs/source/faq/client-started-but-nothing-happens.rst
Normal file
|
|
@ -0,0 +1,11 @@
|
||||||
|
Client started, but nothing happens
|
||||||
|
===================================
|
||||||
|
|
||||||
|
A possible cause might be network issues, either yours or Telegram's. To check this, add the following code at
|
||||||
|
the top of your script and run it again. You should see some error mentioning a socket timeout or an unreachable
|
||||||
|
network:
|
||||||
|
|
||||||
|
.. code-block:: python
|
||||||
|
|
||||||
|
import logging
|
||||||
|
logging.basicConfig(level=logging.INFO)
|
||||||
|
|
@ -0,0 +1,12 @@
|
||||||
|
Code hangs when calling stop, restart, add/remove_handler
|
||||||
|
=========================================================
|
||||||
|
|
||||||
|
You tried to ``.stop()``, ``.restart()``, ``.add_handler()`` or ``.remove_handler()`` inside a running handler, but
|
||||||
|
that can't be done because the way Pyrofork deals with handlers would make it hang.
|
||||||
|
|
||||||
|
When calling one of the methods above inside an event handler, Pyrofork needs to wait for all running handlers to finish
|
||||||
|
in order to continue. Since your handler is blocking the execution by waiting for the called method to finish
|
||||||
|
and since Pyrofork needs to wait for your handler to finish, you are left with a deadlock.
|
||||||
|
|
||||||
|
The solution to this problem is to pass ``block=False`` to such methods so that they return immediately and the actual
|
||||||
|
code called asynchronously.
|
||||||
23
docs/source/faq/how-to-avoid-flood-waits.rst
Normal file
23
docs/source/faq/how-to-avoid-flood-waits.rst
Normal file
|
|
@ -0,0 +1,23 @@
|
||||||
|
How to avoid Flood Waits?
|
||||||
|
=========================
|
||||||
|
|
||||||
|
Slow things down and make less requests. Moreover, exact limits are unknown and can change anytime based on normal
|
||||||
|
usages.
|
||||||
|
|
||||||
|
When a flood wait happens the server will tell you how much time to wait before continuing.
|
||||||
|
The following shows how to catch the exception in your code and wait the required seconds.
|
||||||
|
|
||||||
|
.. code-block:: python
|
||||||
|
|
||||||
|
import asyncio
|
||||||
|
from pyrogram.errors import FloodWait
|
||||||
|
|
||||||
|
...
|
||||||
|
try:
|
||||||
|
... # Your code
|
||||||
|
except FloodWait as e:
|
||||||
|
await asyncio.sleep(e.value) # Wait "value" seconds before continuing
|
||||||
|
...
|
||||||
|
|
||||||
|
|
||||||
|
More info about error handling can be found :doc:`here <../start/errors>`.
|
||||||
9
docs/source/faq/how-to-use-webhooks.rst
Normal file
9
docs/source/faq/how-to-use-webhooks.rst
Normal file
|
|
@ -0,0 +1,9 @@
|
||||||
|
How to use webhooks?
|
||||||
|
====================
|
||||||
|
|
||||||
|
There is no webhook in Pyrofork, simply because there is no HTTP involved. However, a similar technique is
|
||||||
|
being used to make receiving updates efficient.
|
||||||
|
|
||||||
|
Pyrofork uses persistent connections via TCP sockets to interact with the server and instead of actively asking for
|
||||||
|
updates every time (polling), Pyrofork will sit down and wait for the server to send updates by itself the very moment
|
||||||
|
they are available (server push).
|
||||||
45
docs/source/faq/index.rst
Normal file
45
docs/source/faq/index.rst
Normal file
|
|
@ -0,0 +1,45 @@
|
||||||
|
Frequently Asked Questions
|
||||||
|
==========================
|
||||||
|
|
||||||
|
This FAQ page provides answers to common questions about Pyrofork and, to some extent, Telegram in general.
|
||||||
|
|
||||||
|
**Contents**
|
||||||
|
|
||||||
|
- :doc:`why-is-the-api-key-needed-for-bots`
|
||||||
|
- :doc:`how-to-use-webhooks`
|
||||||
|
- :doc:`using-the-same-file-id-across-different-accounts`
|
||||||
|
- :doc:`using-multiple-clients-at-once-on-the-same-account`
|
||||||
|
- :doc:`client-started-but-nothing-happens`
|
||||||
|
- :doc:`what-are-the-ip-addresses-of-telegram-data-centers`
|
||||||
|
- :doc:`migrating-the-account-to-another-data-center`
|
||||||
|
- :doc:`why-is-the-client-reacting-slowly-in-supergroups-channels`
|
||||||
|
- :doc:`peer-id-invalid-error`
|
||||||
|
- :doc:`code-hangs-when-calling-stop-restart-add-remove-handler`
|
||||||
|
- :doc:`unicodeencodeerror-codec-cant-encode`
|
||||||
|
- :doc:`uploading-with-urls-gives-error-webpage-curl-failed`
|
||||||
|
- :doc:`sqlite3-operationalerror-database-is-locked`
|
||||||
|
- :doc:`sqlite3-interfaceerror-error-binding-parameter`
|
||||||
|
- :doc:`socket-send-oserror-timeouterror-connection-lost-reset`
|
||||||
|
- :doc:`how-to-avoid-flood-waits`
|
||||||
|
- :doc:`the-account-has-been-limited-deactivated`
|
||||||
|
|
||||||
|
.. toctree::
|
||||||
|
:hidden:
|
||||||
|
|
||||||
|
why-is-the-api-key-needed-for-bots
|
||||||
|
how-to-use-webhooks
|
||||||
|
using-the-same-file-id-across-different-accounts
|
||||||
|
using-multiple-clients-at-once-on-the-same-account
|
||||||
|
client-started-but-nothing-happens
|
||||||
|
what-are-the-ip-addresses-of-telegram-data-centers
|
||||||
|
migrating-the-account-to-another-data-center
|
||||||
|
why-is-the-client-reacting-slowly-in-supergroups-channels
|
||||||
|
peer-id-invalid-error
|
||||||
|
code-hangs-when-calling-stop-restart-add-remove-handler
|
||||||
|
unicodeencodeerror-codec-cant-encode
|
||||||
|
uploading-with-urls-gives-error-webpage-curl-failed
|
||||||
|
sqlite3-operationalerror-database-is-locked
|
||||||
|
sqlite3-interfaceerror-error-binding-parameter
|
||||||
|
socket-send-oserror-timeouterror-connection-lost-reset
|
||||||
|
how-to-avoid-flood-waits
|
||||||
|
the-account-has-been-limited-deactivated
|
||||||
|
|
@ -0,0 +1,10 @@
|
||||||
|
Migrating the account to another data center
|
||||||
|
============================================
|
||||||
|
|
||||||
|
This question is asked by people who find their account always being connected to one DC (data center), but are
|
||||||
|
connecting from a place far away, thus resulting in slower interactions when using the API because of the greater
|
||||||
|
physical distance between the user and the associated DC.
|
||||||
|
|
||||||
|
When registering an account for the first time, is up to Telegram to decide which DC the new user is going to be
|
||||||
|
created in. It's also up to the server to decide whether to automatically migrate a user in case of prolonged usages
|
||||||
|
from a distant location.
|
||||||
14
docs/source/faq/peer-id-invalid-error.rst
Normal file
14
docs/source/faq/peer-id-invalid-error.rst
Normal file
|
|
@ -0,0 +1,14 @@
|
||||||
|
PEER_ID_INVALID error
|
||||||
|
=====================
|
||||||
|
|
||||||
|
This error could mean several things:
|
||||||
|
|
||||||
|
- The chat id you tried to use is simply wrong, check it again.
|
||||||
|
- The chat id refers to a group or channel you are not a member of.
|
||||||
|
- The chat id argument you passed is in form of a string; you have to convert it into an integer with ``int(chat_id)``.
|
||||||
|
- The chat id refers to a user or chat your current session hasn't met yet.
|
||||||
|
|
||||||
|
About the last point: in order for you to meet a user and thus communicate with them, you should ask yourself how to
|
||||||
|
contact people using official apps. The answer is the same for Pyrofork too and involves normal usages such as searching
|
||||||
|
for usernames, meeting them in a common group, having their phone contacts saved, getting a message mentioning them
|
||||||
|
or obtaining the dialogs list.
|
||||||
|
|
@ -0,0 +1,12 @@
|
||||||
|
socket.send(), OSError(), TimeoutError(), Connection lost/reset
|
||||||
|
===============================================================
|
||||||
|
|
||||||
|
If you get any of these errors chances are you ended up with a slow or inconsistent network connection.
|
||||||
|
Another reason could be because you are blocking the event loop for too long.
|
||||||
|
|
||||||
|
You can consider the following:
|
||||||
|
|
||||||
|
- Use Pyrofork asynchronously in its intended way.
|
||||||
|
- Use shorter non-asynchronous processing loops.
|
||||||
|
- Use ``asyncio.sleep()`` instead of ``time.sleep()``.
|
||||||
|
- Use a stable network connection.
|
||||||
|
|
@ -0,0 +1,13 @@
|
||||||
|
sqlite3.InterfaceError: Error binding parameter
|
||||||
|
===============================================
|
||||||
|
|
||||||
|
This error occurs when you pass a chat id value of the wrong type when trying to call a method. Most likely, you
|
||||||
|
accidentally passed the whole user or chat object instead of the id or username.
|
||||||
|
|
||||||
|
.. code-block:: python
|
||||||
|
|
||||||
|
# Wrong. You passed the whole Chat instance
|
||||||
|
app.send_message(chat, "text")
|
||||||
|
|
||||||
|
# Correct
|
||||||
|
app.send_message(chat.id, "text")
|
||||||
|
|
@ -0,0 +1,17 @@
|
||||||
|
sqlite3.OperationalError: database is locked
|
||||||
|
============================================
|
||||||
|
|
||||||
|
This error occurs when more than one process is using the same session file, that is, when you run two or more clients
|
||||||
|
at the same time using the same session name or in case another program has accessed the file.
|
||||||
|
|
||||||
|
For example, it could occur when a background script is still running and you forgot about it. In this case, you either
|
||||||
|
restart your system or find and kill the process that is locking the database. On Unix based systems, you can try the
|
||||||
|
following:
|
||||||
|
|
||||||
|
#. ``cd`` into your session file directory.
|
||||||
|
#. ``fuser my_account.session`` to find the process id.
|
||||||
|
#. ``kill 1234`` to gracefully stop the process.
|
||||||
|
#. If the last command doesn't help, use ``kill -9 1234`` instead.
|
||||||
|
|
||||||
|
If you want to run multiple clients on the same account, you must authorize your account (either user or bot)
|
||||||
|
from the beginning every time, and use different session names for each parallel client you are going to use.
|
||||||
16
docs/source/faq/the-account-has-been-limited-deactivated.rst
Normal file
16
docs/source/faq/the-account-has-been-limited-deactivated.rst
Normal file
|
|
@ -0,0 +1,16 @@
|
||||||
|
The account has been limited/deactivated
|
||||||
|
========================================
|
||||||
|
|
||||||
|
Pyrofork is a framework that interfaces with Telegram; it is at your commands, meaning it only does what you tell it to
|
||||||
|
do, the rest is up to you and Telegram (see `Telegram's ToS`_).
|
||||||
|
|
||||||
|
If you found your account being limited/deactivated, it could be due spam/flood/abuse of the API or the usage of certain
|
||||||
|
virtual/VoIP numbers.
|
||||||
|
|
||||||
|
If you think your account was limited/deactivated by mistake, you can write to recover@telegram.org, contact
|
||||||
|
`@SpamBot`_ or use `this form`_.
|
||||||
|
|
||||||
|
.. _@SpamBot: https://t.me/spambot
|
||||||
|
.. _this form: https://telegram.org/support
|
||||||
|
.. _Telegram's ToS: https://telegram.org/tos
|
||||||
|
|
||||||
7
docs/source/faq/unicodeencodeerror-codec-cant-encode.rst
Normal file
7
docs/source/faq/unicodeencodeerror-codec-cant-encode.rst
Normal file
|
|
@ -0,0 +1,7 @@
|
||||||
|
UnicodeEncodeError: '...' codec can't encode ...
|
||||||
|
================================================
|
||||||
|
|
||||||
|
Where ``<encoding>`` might be *ascii*, *cp932*, *charmap* or anything else other than *utf-8*. This error usually
|
||||||
|
shows up when you try to print something and has very little to do with Pyrofork itself as it is strictly related to
|
||||||
|
your own terminal. To fix it, either find a way to change the encoding settings of your terminal to UTF-8 or switch to
|
||||||
|
another terminal altogether.
|
||||||
|
|
@ -0,0 +1,7 @@
|
||||||
|
Uploading with URLs gives error WEBPAGE_CURL_FAILED
|
||||||
|
===================================================
|
||||||
|
|
||||||
|
When uploading media files using an URL, the server automatically tries to download the media and uploads it to the
|
||||||
|
Telegram cloud. This error usually happens in case the provided URL is not publicly accessible by Telegram itself or the
|
||||||
|
media file is too large. In such cases, your only option is to download the media yourself and upload it from your
|
||||||
|
local machine.
|
||||||
|
|
@ -0,0 +1,7 @@
|
||||||
|
Using multiple clients at once on the same account
|
||||||
|
==================================================
|
||||||
|
|
||||||
|
Both user and bot accounts are able to run multiple sessions in parallel. However, you must not use the same session
|
||||||
|
in more than one client at the same time. The correct way to run multiple clients on the same account is by authorizing
|
||||||
|
your account (either user or bot) from the beginning each time, and use one separate session for each parallel client.
|
||||||
|
|
||||||
|
|
@ -0,0 +1,6 @@
|
||||||
|
Using the same file_id across different accounts
|
||||||
|
================================================
|
||||||
|
|
||||||
|
Telegram file_id strings are bound to the account which generated them. An attempt in using a foreign file id will
|
||||||
|
result in errors such as ``[400 MEDIA_EMPTY]``. The only exception are stickers' file ids; you can use them across
|
||||||
|
different accounts without any problem.
|
||||||
|
|
@ -0,0 +1,30 @@
|
||||||
|
What are the IP addresses of Telegram Data Centers?
|
||||||
|
===================================================
|
||||||
|
|
||||||
|
Telegram is currently composed by a decentralized, multi-DC infrastructure (currently 5 DCs, each of which can
|
||||||
|
work independently) spread across different locations worldwide. However, some of the less busy DCs have been lately
|
||||||
|
dismissed and their IP addresses are now kept as aliases to the nearest one.
|
||||||
|
|
||||||
|
.. csv-table:: Production Environment
|
||||||
|
:header: ID, Location, IPv4, IPv6
|
||||||
|
:widths: auto
|
||||||
|
:align: center
|
||||||
|
|
||||||
|
DC1, "MIA, Miami FL, USA", ``149.154.175.53``, ``2001:b28:f23d:f001::a``
|
||||||
|
DC2, "AMS, Amsterdam, NL", ``149.154.167.51``, ``2001:67c:4e8:f002::a``
|
||||||
|
DC3*, "MIA, Miami FL, USA", ``149.154.175.100``, ``2001:b28:f23d:f003::a``
|
||||||
|
DC4, "AMS, Amsterdam, NL", ``149.154.167.91``, ``2001:67c:4e8:f004::a``
|
||||||
|
DC5, "SIN, Singapore, SG", ``91.108.56.130``, ``2001:b28:f23f:f005::a``
|
||||||
|
|
||||||
|
.. csv-table:: Test Environment
|
||||||
|
:header: ID, Location, IPv4, IPv6
|
||||||
|
:widths: auto
|
||||||
|
:align: center
|
||||||
|
|
||||||
|
DC1, "MIA, Miami FL, USA", ``149.154.175.10``, ``2001:b28:f23d:f001::e``
|
||||||
|
DC2, "AMS, Amsterdam, NL", ``149.154.167.40``, ``2001:67c:4e8:f002::e``
|
||||||
|
DC3*, "MIA, Miami FL, USA", ``149.154.175.117``, ``2001:b28:f23d:f003::e``
|
||||||
|
|
||||||
|
.. centered:: More info about the Test Environment can be found :doc:`here <../topics/test-servers>`.
|
||||||
|
|
||||||
|
***** Alias DC
|
||||||
12
docs/source/faq/why-is-the-api-key-needed-for-bots.rst
Normal file
12
docs/source/faq/why-is-the-api-key-needed-for-bots.rst
Normal file
|
|
@ -0,0 +1,12 @@
|
||||||
|
Why is the API key needed for bots?
|
||||||
|
===================================
|
||||||
|
|
||||||
|
Requests against the official bot API endpoints are made via JSON/HTTP and are handled by an intermediate server
|
||||||
|
application that implements the MTProto protocol and uses its own API key to communicate with the MTProto servers.
|
||||||
|
|
||||||
|
.. figure:: //_static/img/mtproto-vs-bot-api.png
|
||||||
|
:align: center
|
||||||
|
|
||||||
|
Using MTProto is the only way to communicate with the actual Telegram servers, and the main API requires developers to
|
||||||
|
identify applications by means of a unique key; the bot token identifies a bot as a user and replaces the user's phone
|
||||||
|
number only.
|
||||||
|
|
@ -0,0 +1,18 @@
|
||||||
|
Why is the client reacting slowly in supergroups/channels?
|
||||||
|
==========================================================
|
||||||
|
|
||||||
|
Because of how Telegram works internally, every message you receive and send must pass through the creator's DC, and in
|
||||||
|
the worst case where you, the creator and another member all belong to three different DCs, the other member messages
|
||||||
|
have to go through from their DC to the creator's DC and finally to your DC. This is applied to each message and member
|
||||||
|
of a supergroup/channel and the process will inevitably take its time.
|
||||||
|
|
||||||
|
Another reason that makes responses come slowly is that messages are dispatched by priority. Depending on the kind
|
||||||
|
of member, some users receive messages faster than others and for big and busy supergroups the delay might become
|
||||||
|
noticeable, especially if you are among the lower end of the priority list:
|
||||||
|
|
||||||
|
1. Creator.
|
||||||
|
2. Administrators.
|
||||||
|
3. Bots.
|
||||||
|
4. Mentioned users.
|
||||||
|
5. Recent online users.
|
||||||
|
6. Everyone else.
|
||||||
171
docs/source/index.rst
Normal file
171
docs/source/index.rst
Normal file
|
|
@ -0,0 +1,171 @@
|
||||||
|
Welcome to Pyrofork
|
||||||
|
===================
|
||||||
|
|
||||||
|
.. raw:: html
|
||||||
|
|
||||||
|
<div align="center">
|
||||||
|
<a href="/">
|
||||||
|
<h1 class="pyrogram-text pyrogram-text-index">PyroFork</h1>
|
||||||
|
</a>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<p align="center">
|
||||||
|
<b>Telegram MTProto API Framework for Python</b>
|
||||||
|
|
||||||
|
<br>
|
||||||
|
<a href="https://github.com/Mayuri-Chan">
|
||||||
|
Homepage
|
||||||
|
</a>
|
||||||
|
•
|
||||||
|
<a href="https://github.com/Mayuri-Chan/pyrofork">
|
||||||
|
Development
|
||||||
|
</a>
|
||||||
|
•
|
||||||
|
<a href="https://github.com/Mayuri-Chan/pyrofork/issues">
|
||||||
|
Issues
|
||||||
|
</a>
|
||||||
|
•
|
||||||
|
<a href="https://t.me/MayuriChan_Chat">
|
||||||
|
Support Chat
|
||||||
|
</a>
|
||||||
|
•
|
||||||
|
<a href="https://t.me/Pyrofork_CH">
|
||||||
|
News/Releases
|
||||||
|
</a>
|
||||||
|
</p>
|
||||||
|
|
||||||
|
.. code-block:: python
|
||||||
|
|
||||||
|
from pyrogram import Client, filters
|
||||||
|
|
||||||
|
app = Client("my_account")
|
||||||
|
|
||||||
|
|
||||||
|
@app.on_message(filters.private)
|
||||||
|
async def hello(client, message):
|
||||||
|
await message.reply("Hello from Pyrofork!")
|
||||||
|
|
||||||
|
|
||||||
|
app.run()
|
||||||
|
|
||||||
|
**Pyrofork** is a modern, elegant and asynchronous :doc:`MTProto API <topics/mtproto-vs-botapi>` framework.
|
||||||
|
It enables you to easily interact with the main Telegram API through a user account (custom client) or a bot identity
|
||||||
|
(bot API alternative) using Python.
|
||||||
|
|
||||||
|
Support
|
||||||
|
-------
|
||||||
|
|
||||||
|
If you'd like to support Pyrofork, you can consider:
|
||||||
|
|
||||||
|
- `Become a GitHub sponsor <https://github.com/sponsors/Mayuri-Chan>`_.
|
||||||
|
|
||||||
|
How the Documentation is Organized
|
||||||
|
----------------------------------
|
||||||
|
|
||||||
|
Contents are organized into sections composed of self-contained topics which can be all accessed from the sidebar, or by
|
||||||
|
following them in order using the :guilabel:`Next` button at the end of each page.
|
||||||
|
You can also switch to Dark or Light theme or leave on Auto (follows system preferences) by using the dedicated button
|
||||||
|
in the top left corner.
|
||||||
|
|
||||||
|
Here below you can, instead, find a list of the most relevant pages for a quick access.
|
||||||
|
|
||||||
|
First Steps
|
||||||
|
^^^^^^^^^^^
|
||||||
|
|
||||||
|
.. hlist::
|
||||||
|
:columns: 1
|
||||||
|
|
||||||
|
- :doc:`Quick Start <intro/quickstart>`: Overview to get you started quickly.
|
||||||
|
- :doc:`Invoking Methods <start/invoking>`: How to call Pyrofork's methods.
|
||||||
|
- :doc:`Handling Updates <start/updates>`: How to handle Telegram updates.
|
||||||
|
- :doc:`Error Handling <start/errors>`: How to handle API errors correctly.
|
||||||
|
|
||||||
|
API Reference
|
||||||
|
^^^^^^^^^^^^^
|
||||||
|
|
||||||
|
.. hlist::
|
||||||
|
:columns: 1
|
||||||
|
|
||||||
|
- :doc:`Pyrofork Client <api/client>`: Reference details about the Client class.
|
||||||
|
- :doc:`Available Methods <api/methods/index>`: List of available high-level methods.
|
||||||
|
- :doc:`Available Types <api/types/index>`: List of available high-level types.
|
||||||
|
- :doc:`Enumerations <api/enums/index>`: List of available enumerations.
|
||||||
|
- :doc:`Bound Methods <api/bound-methods/index>`: List of convenient bound methods.
|
||||||
|
|
||||||
|
Meta
|
||||||
|
^^^^
|
||||||
|
|
||||||
|
.. hlist::
|
||||||
|
:columns: 1
|
||||||
|
|
||||||
|
- :doc:`Pyrofork FAQ <faq/index>`: Answers to common Pyrofork questions.
|
||||||
|
- :doc:`Support Pyrofork <support>`: Ways to show your appreciation.
|
||||||
|
|
||||||
|
.. toctree::
|
||||||
|
:hidden:
|
||||||
|
:caption: Introduction
|
||||||
|
|
||||||
|
intro/quickstart
|
||||||
|
intro/install
|
||||||
|
|
||||||
|
.. toctree::
|
||||||
|
:hidden:
|
||||||
|
:caption: Getting Started
|
||||||
|
|
||||||
|
start/setup
|
||||||
|
start/auth
|
||||||
|
start/invoking
|
||||||
|
start/updates
|
||||||
|
start/errors
|
||||||
|
start/examples/index
|
||||||
|
|
||||||
|
.. toctree::
|
||||||
|
:hidden:
|
||||||
|
:caption: API Reference
|
||||||
|
|
||||||
|
api/client
|
||||||
|
api/methods/index
|
||||||
|
api/types/index
|
||||||
|
api/bound-methods/index
|
||||||
|
api/enums/index
|
||||||
|
api/handlers
|
||||||
|
api/decorators
|
||||||
|
api/errors/index
|
||||||
|
api/filters
|
||||||
|
|
||||||
|
.. toctree::
|
||||||
|
:hidden:
|
||||||
|
:caption: Topic Guides
|
||||||
|
|
||||||
|
topics/use-filters
|
||||||
|
topics/create-filters
|
||||||
|
topics/more-on-updates
|
||||||
|
topics/client-settings
|
||||||
|
topics/speedups
|
||||||
|
topics/text-formatting
|
||||||
|
topics/synchronous
|
||||||
|
topics/smart-plugins
|
||||||
|
topics/storage-engines
|
||||||
|
topics/serializing
|
||||||
|
topics/proxy
|
||||||
|
topics/scheduling
|
||||||
|
topics/mtproto-vs-botapi
|
||||||
|
topics/debugging
|
||||||
|
topics/test-servers
|
||||||
|
topics/advanced-usage
|
||||||
|
topics/voice-calls
|
||||||
|
|
||||||
|
.. toctree::
|
||||||
|
:hidden:
|
||||||
|
:caption: Meta
|
||||||
|
|
||||||
|
faq/index
|
||||||
|
support
|
||||||
|
|
||||||
|
.. toctree::
|
||||||
|
:hidden:
|
||||||
|
:caption: Telegram Raw API
|
||||||
|
|
||||||
|
telegram/functions/index
|
||||||
|
telegram/types/index
|
||||||
|
telegram/base/index
|
||||||
50
docs/source/intro/install.rst
Normal file
50
docs/source/intro/install.rst
Normal file
|
|
@ -0,0 +1,50 @@
|
||||||
|
Install Guide
|
||||||
|
=============
|
||||||
|
|
||||||
|
Being a modern Python framework, Pyrofork requires an up to date version of Python to be installed in your system.
|
||||||
|
We recommend using the latest versions of both Python 3 and pip.
|
||||||
|
|
||||||
|
.. contents:: Contents
|
||||||
|
:backlinks: none
|
||||||
|
:depth: 1
|
||||||
|
:local:
|
||||||
|
|
||||||
|
-----
|
||||||
|
|
||||||
|
Install Pyrofork
|
||||||
|
----------------
|
||||||
|
|
||||||
|
- The easiest way to install and upgrade Pyrofork to its latest stable version is by using **pip**:
|
||||||
|
|
||||||
|
.. code-block:: text
|
||||||
|
|
||||||
|
$ pip3 install -U pyrofork
|
||||||
|
|
||||||
|
- or, with :doc:`TgCrypto <../topics/speedups>` as extra requirement (recommended):
|
||||||
|
|
||||||
|
.. code-block:: text
|
||||||
|
|
||||||
|
$ pip3 install -U pyrofork tgcrypto
|
||||||
|
|
||||||
|
Bleeding Edge
|
||||||
|
-------------
|
||||||
|
|
||||||
|
You can install the development version from the git ``master`` branch using this command:
|
||||||
|
|
||||||
|
.. code-block:: text
|
||||||
|
|
||||||
|
$ pip3 install -U https://github.com/Mayuri-Chan/pyrofork/archive/master.zip
|
||||||
|
|
||||||
|
Verifying
|
||||||
|
---------
|
||||||
|
|
||||||
|
To verify that Pyrofork is correctly installed, open a Python shell and import it.
|
||||||
|
If no error shows up you are good to go.
|
||||||
|
|
||||||
|
.. parsed-literal::
|
||||||
|
|
||||||
|
>>> import pyrogram
|
||||||
|
>>> pyrogram.__version__
|
||||||
|
'x.y.z'
|
||||||
|
|
||||||
|
.. _`Github repo`: http://github.com/Mayuri-Chan/pyrofork
|
||||||
Some files were not shown because too many files have changed in this diff Show more
Loading…
Reference in a new issue