threadkiller 4.1.0__tar.gz → 4.1.1__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {threadkiller-4.1.0 → threadkiller-4.1.1}/.forgejo/workflows/test-package.yaml +0 -7
- {threadkiller-4.1.0 → threadkiller-4.1.1}/PKG-INFO +3 -3
- {threadkiller-4.1.0 → threadkiller-4.1.1}/pyproject.toml +6 -5
- {threadkiller-4.1.0 → threadkiller-4.1.1}/threadkiller/locale/__init__.py +5 -0
- {threadkiller-4.1.0 → threadkiller-4.1.1}/threadkiller/locale/en/main.ftl +6 -4
- threadkiller-4.1.1/threadkiller/locale/it/main.ftl +201 -0
- {threadkiller-4.1.0 → threadkiller-4.1.1}/uv.lock +11 -9
- {threadkiller-4.1.0 → threadkiller-4.1.1}/.containerignore +0 -0
- {threadkiller-4.1.0 → threadkiller-4.1.1}/.editorconfig +0 -0
- {threadkiller-4.1.0 → threadkiller-4.1.1}/.forgejo/workflows/build-container-image-v.yaml +0 -0
- {threadkiller-4.1.0 → threadkiller-4.1.1}/.forgejo/workflows/build-package.yaml +0 -0
- {threadkiller-4.1.0 → threadkiller-4.1.1}/.gitignore +0 -0
- {threadkiller-4.1.0 → threadkiller-4.1.1}/.idea/.gitignore +0 -0
- {threadkiller-4.1.0 → threadkiller-4.1.1}/.idea/codeStyles/Project.xml +0 -0
- {threadkiller-4.1.0 → threadkiller-4.1.1}/.idea/codeStyles/codeStyleConfig.xml +0 -0
- {threadkiller-4.1.0 → threadkiller-4.1.1}/.idea/discord.xml +0 -0
- {threadkiller-4.1.0 → threadkiller-4.1.1}/.idea/icon.svg +0 -0
- {threadkiller-4.1.0 → threadkiller-4.1.1}/.idea/inspectionProfiles/Project_Default.xml +0 -0
- {threadkiller-4.1.0 → threadkiller-4.1.1}/.idea/jsonSchemas.xml +0 -0
- {threadkiller-4.1.0 → threadkiller-4.1.1}/.idea/misc.xml +0 -0
- {threadkiller-4.1.0 → threadkiller-4.1.1}/.idea/modules.xml +0 -0
- {threadkiller-4.1.0 → threadkiller-4.1.1}/.idea/threadkiller.iml +0 -0
- {threadkiller-4.1.0 → threadkiller-4.1.1}/.idea/vcs.xml +0 -0
- {threadkiller-4.1.0 → threadkiller-4.1.1}/.media/icon-512.png +0 -0
- {threadkiller-4.1.0 → threadkiller-4.1.1}/.media/icon.svg +0 -0
- {threadkiller-4.1.0 → threadkiller-4.1.1}/.noai +0 -0
- {threadkiller-4.1.0 → threadkiller-4.1.1}/.vscode/extensions.json +0 -0
- {threadkiller-4.1.0 → threadkiller-4.1.1}/.vscode/settings.json +0 -0
- {threadkiller-4.1.0 → threadkiller-4.1.1}/Containerfile +0 -0
- {threadkiller-4.1.0 → threadkiller-4.1.1}/LICENSE.txt +0 -0
- {threadkiller-4.1.0 → threadkiller-4.1.1}/compose.yml +0 -0
- {threadkiller-4.1.0 → threadkiller-4.1.1}/threadkiller/__init__.py +0 -0
- {threadkiller-4.1.0 → threadkiller-4.1.1}/threadkiller/__main__.py +0 -0
- {threadkiller-4.1.0 → threadkiller-4.1.1}/threadkiller/application.py +0 -0
- {threadkiller-4.1.0 → threadkiller-4.1.1}/threadkiller/config.py +0 -0
- {threadkiller-4.1.0 → threadkiller-4.1.1}/threadkiller/handlers.py +0 -0
- {threadkiller-4.1.0 → threadkiller-4.1.1}/threadkiller/log.py +0 -0
- {threadkiller-4.1.0 → threadkiller-4.1.1}/threadkiller/metadata.py +0 -0
- {threadkiller-4.1.0 → threadkiller-4.1.1}/threadkiller/types.py +0 -0
|
@@ -33,10 +33,3 @@ jobs:
|
|
|
33
33
|
name: "Run compileall"
|
|
34
34
|
run: |-
|
|
35
35
|
uv run python -m compileall threadkiller -f
|
|
36
|
-
-
|
|
37
|
-
name: "Upload coverage artifact"
|
|
38
|
-
uses: https://code.forgejo.org/forgejo/upload-artifact@cb8afe72b42edc798abfb8fcb556cf660d894245
|
|
39
|
-
with:
|
|
40
|
-
name: "Coverage"
|
|
41
|
-
path: .coverage
|
|
42
|
-
if-no-files-found: warn
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.5
|
|
2
2
|
Name: threadkiller
|
|
3
|
-
Version: 4.1.
|
|
3
|
+
Version: 4.1.1
|
|
4
4
|
Summary: Telegram bot to delete messages sent outside of threads
|
|
5
5
|
Project-URL: Source, https://g.starshard.space/steffo/threadkiller
|
|
6
6
|
Project-URL: Issues, https://g.starshard.space/steffo/threadkiller/issues
|
|
@@ -16,14 +16,14 @@ Keywords: chat-moderation,chat-threads,python-telegram-bot,telegram,telegram-bot
|
|
|
16
16
|
Classifier: Development Status :: 5 - Production/Stable
|
|
17
17
|
Classifier: Environment :: No Input/Output (Daemon)
|
|
18
18
|
Classifier: Intended Audience :: System Administrators
|
|
19
|
-
Classifier: License :: OSI Approved :: European Union Public Licence 1.2 (EUPL 1.2)
|
|
20
19
|
Classifier: Natural Language :: English
|
|
21
20
|
Classifier: Operating System :: OS Independent
|
|
22
21
|
Classifier: Programming Language :: Python :: 3
|
|
23
22
|
Classifier: Programming Language :: Python :: 3.14
|
|
24
23
|
Classifier: Topic :: Communications :: Chat
|
|
25
24
|
Requires-Python: >=3.14
|
|
26
|
-
Requires-Dist:
|
|
25
|
+
Requires-Dist: certifi>=2026.10.19
|
|
26
|
+
Requires-Dist: cfig[cli]>=0.3.11
|
|
27
27
|
Requires-Dist: coloredlogs>=15.0.1
|
|
28
28
|
Requires-Dist: fluent-runtime
|
|
29
29
|
Requires-Dist: python-telegram-bot>=22.8
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
[project]
|
|
2
2
|
name = "threadkiller"
|
|
3
|
-
version = "4.1.
|
|
3
|
+
version = "4.1.1"
|
|
4
4
|
description = "Telegram bot to delete messages sent outside of threads"
|
|
5
5
|
authors = [
|
|
6
6
|
{ name = "Stefano Pigozzi", email = "me@steffo.eu" },
|
|
@@ -23,7 +23,6 @@ classifiers = [
|
|
|
23
23
|
"Programming Language :: Python :: 3",
|
|
24
24
|
"Programming Language :: Python :: 3.14",
|
|
25
25
|
"Environment :: No Input/Output (Daemon)",
|
|
26
|
-
"License :: OSI Approved :: European Union Public Licence 1.2 (EUPL 1.2)",
|
|
27
26
|
"Natural Language :: English",
|
|
28
27
|
"Operating System :: OS Independent",
|
|
29
28
|
"Topic :: Communications :: Chat",
|
|
@@ -31,10 +30,12 @@ classifiers = [
|
|
|
31
30
|
|
|
32
31
|
requires-python = ">=3.14"
|
|
33
32
|
dependencies = [
|
|
34
|
-
"python-telegram-bot>=22.8",
|
|
35
|
-
"cfig[cli]>=0.3.
|
|
33
|
+
"python-telegram-bot >= 22.8",
|
|
34
|
+
"cfig[cli] >= 0.3.11",
|
|
36
35
|
"fluent-runtime", # From git
|
|
37
|
-
"coloredlogs>=15.0.1",
|
|
36
|
+
"coloredlogs >= 15.0.1",
|
|
37
|
+
# Pins
|
|
38
|
+
"certifi >= 2026.10.19",
|
|
38
39
|
]
|
|
39
40
|
|
|
40
41
|
[project.scripts]
|
|
@@ -18,6 +18,11 @@ fluent_locales: dict[str | None, FluentLocalization] = {
|
|
|
18
18
|
resource_ids=["main.ftl"],
|
|
19
19
|
resource_loader=fluent_loader
|
|
20
20
|
),
|
|
21
|
+
"it": FluentLocalization(
|
|
22
|
+
locales=["it", "en"],
|
|
23
|
+
resource_ids=["main.ftl"],
|
|
24
|
+
resource_loader=fluent_loader
|
|
25
|
+
)
|
|
21
26
|
}
|
|
22
27
|
|
|
23
28
|
# Set default locale
|
|
@@ -76,7 +76,7 @@ command-help-success =
|
|
|
76
76
|
|
|
77
77
|
Since messages can be sent there, even if they're not replies to channel posts, it can sometimes create confusing conversations, as messages not sent as replies are not displayed in the channel comments, and notifications aren't sent to the <i>Replies</i> system chat.
|
|
78
78
|
|
|
79
|
-
This bot
|
|
79
|
+
This bot unintrusively notifies the users who sent a message outside of a reply thread via an ephemeral message, telling them to re-send the message as a reply, and optionally delete their message to keep the discussion group clean and prevent the conversation from continuing outside the thread.
|
|
80
80
|
|
|
81
81
|
|
|
82
82
|
## /settings - This command explains the modes in which the bot can operate.
|
|
@@ -188,12 +188,14 @@ command-donate-success =
|
|
|
188
188
|
message-deleted =
|
|
189
189
|
⬆️ <b>Your message was deleted</b>, as all messages in this group must be sent as a reply to another message.
|
|
190
190
|
|
|
191
|
-
Messages sent
|
|
191
|
+
Messages sent outside replies are unlikely to be seen by others, as they don't show up in the channel's comments or in the system <i>Replies</i> chat, and they can also be difficult to moderate, as they appear mixed-in with regular channel comments.
|
|
192
192
|
|
|
193
|
-
I've sent the deleted message back to you above; please copy, paste and re-send it as a reply to another message or a post instead!
|
|
193
|
+
I've privately sent the deleted message back to you above; please copy, paste and re-send it as a reply to another message or a post instead!
|
|
194
194
|
|
|
195
195
|
# This message is displayed when a message is *not* deleted by the bot.
|
|
196
196
|
message-notified =
|
|
197
|
-
⬆️ Your message was not sent as a reply to another message
|
|
197
|
+
⬆️ Your message was not sent as a reply to another message.
|
|
198
|
+
|
|
199
|
+
Messages sent outside replies are unlikely to be seen by others, as they don't show up in the channel's comments or in the system <i>Replies</i> chat, and they can also be difficult to moderate, as they appear mixed-in with regular channel comments.
|
|
198
200
|
|
|
199
201
|
Please re-send it as a reply to another message or a post instead!
|
|
@@ -0,0 +1,201 @@
|
|
|
1
|
+
## /start - The command automatically sent at the start of a new conversation.
|
|
2
|
+
|
|
3
|
+
# The command itself.
|
|
4
|
+
# $bot-name (String): the bot's username.
|
|
5
|
+
command-start = /start@{ $bot-name }
|
|
6
|
+
|
|
7
|
+
# The command's description.
|
|
8
|
+
command-start-description = Vedi il messaggio di introduzione del bot.
|
|
9
|
+
|
|
10
|
+
# The response sent after a start invocation in a private chat.
|
|
11
|
+
# $bot-name (String): the bot's username.
|
|
12
|
+
command-start-private-success =
|
|
13
|
+
👋 Ciao, sono @{ $bot-name }!
|
|
14
|
+
|
|
15
|
+
Cosa vorresti fare?
|
|
16
|
+
|
|
17
|
+
{ command-start } - { command-start-description }
|
|
18
|
+
{ command-addtogroup } - { command-addtogroup-description }
|
|
19
|
+
{ command-help } - { command-help-description }
|
|
20
|
+
{ command-settings } - { command-settings-description }
|
|
21
|
+
{ command-support } - { command-support-description }
|
|
22
|
+
{ command-version } - { command-version-description }
|
|
23
|
+
{ command-privacy } - { command-privacy-description }
|
|
24
|
+
{ command-donate } - { command-donate-description }
|
|
25
|
+
|
|
26
|
+
# The response sent after a start invocation in a group chat.
|
|
27
|
+
# $bot-name (String): the bot's username.
|
|
28
|
+
# $url-donate (String): the link to the bot's donation page.
|
|
29
|
+
command-start-group-success =
|
|
30
|
+
✅ @{ $bot-name } è ora attivo in questo gruppo!
|
|
31
|
+
|
|
32
|
+
Se trovi questo bot utile, non dimenticarti di donare per sostenerne lo sviluppo:
|
|
33
|
+
{ $url-donate }
|
|
34
|
+
|
|
35
|
+
|
|
36
|
+
## /addtogroup - This command explains how to add this bot to a group, and sends two links to do so, one with the Delete Messages permission, and one without.
|
|
37
|
+
|
|
38
|
+
# The command itself.
|
|
39
|
+
# $bot-name (String): the bot's username.
|
|
40
|
+
command-addtogroup = /addtogroup@{ $bot-name }
|
|
41
|
+
|
|
42
|
+
# The command's description.
|
|
43
|
+
command-addtogroup-description = Mostra come aggiungere questo bot a un gruppo!
|
|
44
|
+
|
|
45
|
+
# The response sent after a successful invocation.
|
|
46
|
+
# $bot-name (String): the bot's username.
|
|
47
|
+
# $url-notify (String): the URL that sets up the bot to notify users.
|
|
48
|
+
# $url-delete (String): the URL that sets up the bot to delete messages.
|
|
49
|
+
command-addtogroup-success =
|
|
50
|
+
➕ Puoi aggiungere questo bot a un gruppo in uno dei seguenti modi.
|
|
51
|
+
|
|
52
|
+
Questo link aggiunge il bot a un gruppo, e lo configura per <b>notificare gli utenti</b>:
|
|
53
|
+
{ $url-notify }
|
|
54
|
+
|
|
55
|
+
Questo link aggiunge il bot a un gruppo, e lo configura per <b>eliminare i messaggi</b>:
|
|
56
|
+
{ $url-delete }
|
|
57
|
+
|
|
58
|
+
Alternativamente, puoi aggiungere il bot a un gruppo manualmente, renderlo Amministratore, e opzionalmente dargli il permesso di <i>Eliminare i messaggi</i>.
|
|
59
|
+
|
|
60
|
+
Invia { command-settings } per vedere come cambiare tra i due modi.
|
|
61
|
+
|
|
62
|
+
|
|
63
|
+
## /help - This command explains what the bot is for, and how it works in detail.
|
|
64
|
+
|
|
65
|
+
# The command itself.
|
|
66
|
+
# $bot-name (String): the bot's username.
|
|
67
|
+
command-help = /help@{ $bot-name }
|
|
68
|
+
|
|
69
|
+
# The command's description.
|
|
70
|
+
command-help-description = Scopri a cosa serve questo bot.
|
|
71
|
+
|
|
72
|
+
# The response sent after a successful invocation.
|
|
73
|
+
# $bot-name (String): the bot's username.
|
|
74
|
+
command-help-success =
|
|
75
|
+
📘 @{ $bot-name } è inteso per l'uso nei gruppi di discussione dei canali.
|
|
76
|
+
|
|
77
|
+
Dato che i messaggi possono essere inviati lì anche senza che siano risposte a post del canale, a volte possono nascere conversazioni confusionarie, perchè i messaggi che non sono una risposta non sono mostrati nei commenti del canale, e non inviano notifiche nella chat di sistema <i>Risposte</i>.
|
|
78
|
+
|
|
79
|
+
Questo bot notifica non-intrusivamente attraverso un messaggio effimero gli utenti che hanno inviato un messaggio al di fuori delle risposte, dicendogli di rinviarlo come risposta, e opzionalmente elimina il loro messaggio, per tenere il gruppo di discussione pulito e impedire che la conversazione continui al di fuori delle risposte.
|
|
80
|
+
|
|
81
|
+
|
|
82
|
+
## /settings - This command explains the modes in which the bot can operate.
|
|
83
|
+
|
|
84
|
+
# The command itself.
|
|
85
|
+
# $bot-name (String): the bot's username.
|
|
86
|
+
command-settings = /settings@{ $bot-name }
|
|
87
|
+
|
|
88
|
+
# The command's description.
|
|
89
|
+
command-settings-description = Scopri come cambiare il comportamento di questo bot.
|
|
90
|
+
|
|
91
|
+
# The response sent after a successful invocation.
|
|
92
|
+
# $bot-name (String): the bot's username.
|
|
93
|
+
command-settings-success =
|
|
94
|
+
🔧 Oltre a notificare gli utenti, @{ $bot-name } può eliminare i loro messaggi se sono al di fuori delle risposte.
|
|
95
|
+
|
|
96
|
+
Questo comportamento è determinato dal permesso <b><i>Eliminare i messaggi</i></b> che il bot può avere o non avere nel gruppo in cui il messaggio è stato inviato.
|
|
97
|
+
|
|
98
|
+
Il bot prova sempre ad eliminare i messaggi, ma senza quel permesso fallisce, e in tal caso si limita a notificare l'utente.
|
|
99
|
+
|
|
100
|
+
|
|
101
|
+
## /support - This command explains how to get support for the bot.
|
|
102
|
+
|
|
103
|
+
# The command itself.
|
|
104
|
+
# $bot-name (String): the bot's username.
|
|
105
|
+
command-support = /support@{ $bot-name }
|
|
106
|
+
|
|
107
|
+
# The command's description.
|
|
108
|
+
command-support-description = Ricevi supporto per il bot.
|
|
109
|
+
|
|
110
|
+
# The response sent after a successful invocation.
|
|
111
|
+
# $bot-name (String): the bot's username.
|
|
112
|
+
# $bot-group (String): the link or username to the bot's support group.
|
|
113
|
+
# $bot-email (String): the email to get support about the bot.
|
|
114
|
+
# $bot-owner (String): the username of the bot's owner.
|
|
115
|
+
command-support-success =
|
|
116
|
+
🛟 Puoi ricevere supporto per @{ $bot-name } in uno dei seguenti modi:
|
|
117
|
+
.group = {"-"} <a href="{ $bot-group }">nel gruppo di supporto</a>
|
|
118
|
+
.email = {"-"} mandando un'email a { $bot-email }
|
|
119
|
+
.owner = {"-"} <a href="{ $bot-owner }">contattando il proprietario del bot</a>
|
|
120
|
+
.none = <i>nessun canale di supporto è disponibile al momento</i>
|
|
121
|
+
|
|
122
|
+
|
|
123
|
+
## /version - This command displays the bot's version and other information.
|
|
124
|
+
|
|
125
|
+
# The command itself.
|
|
126
|
+
# $bot-name (String): the bot's username.
|
|
127
|
+
command-version = /version@{ $bot-name }
|
|
128
|
+
|
|
129
|
+
# The command's description.
|
|
130
|
+
command-version-description = Vedi quale versione del bot è attualmente in esecuzione.
|
|
131
|
+
|
|
132
|
+
# The response sent after a successful invocation.
|
|
133
|
+
# $bot-name (String): the bot's username.
|
|
134
|
+
# $bot-software (String): the name of the bot's software.
|
|
135
|
+
# $bot-version (String): the bot's software version.
|
|
136
|
+
# $url-source (String): the link to the bot's software source code repository.
|
|
137
|
+
command-version-success =
|
|
138
|
+
ℹ️ @{ $bot-name } sta eseguendo: <code>{ $bot-software } { $bot-version }</code>
|
|
139
|
+
|
|
140
|
+
Il software è concesso il licenza sotto la Licenza Pubblica dell'Unione Europea v1.2 (<code>EUPL-1.2</code>).
|
|
141
|
+
|
|
142
|
+
Il codice sorgente è disponibile a:
|
|
143
|
+
{ $url-source }
|
|
144
|
+
|
|
145
|
+
|
|
146
|
+
## /privacy - This command displays the bot's privacy policy.
|
|
147
|
+
## Guess what: we don't collect any data!
|
|
148
|
+
|
|
149
|
+
# The command itself.
|
|
150
|
+
# $bot-name (String): the bot's username.
|
|
151
|
+
command-privacy = /privacy@{ $bot-name }
|
|
152
|
+
|
|
153
|
+
# The command's description.
|
|
154
|
+
command-privacy-description = Mostra la politica della privacy di questo bot.
|
|
155
|
+
|
|
156
|
+
# The response sent after a successful invocation.
|
|
157
|
+
# $bot-name (String): the bot's username.
|
|
158
|
+
# $url-telegram-api (String): a link to the manual of Telegram's API.
|
|
159
|
+
command-privacy-success =
|
|
160
|
+
😎 @{ $bot-name } non raccoglie alcun dato personale.
|
|
161
|
+
|
|
162
|
+
I dati ricevuti dall'API di Telegram sono immagazzinati solo per il breve tempo necessario per processarli.
|
|
163
|
+
|
|
164
|
+
Per più informazioni su come funziona l'API di Telegram, vedi:
|
|
165
|
+
{ $url-telegram-api }
|
|
166
|
+
|
|
167
|
+
|
|
168
|
+
## /donate - This command displays a link to the support page of the bot owner.
|
|
169
|
+
|
|
170
|
+
# The command itself.
|
|
171
|
+
# $bot-name (String): the bot's username.
|
|
172
|
+
command-donate = /donate@{ $bot-name }
|
|
173
|
+
|
|
174
|
+
# The command's description.
|
|
175
|
+
command-donate-description = Sostieni lo sviluppo di questo bot.
|
|
176
|
+
|
|
177
|
+
# The response sent after a successful invocation.
|
|
178
|
+
# $bot-name (String): the bot's username.
|
|
179
|
+
# $url-donate (String): the link to the bot's donation page.
|
|
180
|
+
command-donate-success =
|
|
181
|
+
💶 Puoi donare per sostenere lo sviluppo di @{ $bot-name } a:
|
|
182
|
+
{ $url-donate }
|
|
183
|
+
|
|
184
|
+
|
|
185
|
+
## These messages are sent automatically by the bot when an action is triggered.
|
|
186
|
+
|
|
187
|
+
# This message is displayed when a message is deleted by the bot.
|
|
188
|
+
message-deleted =
|
|
189
|
+
⬆️ <b>Il tuo messaggio è stato cancellato</b> perchè tutti i messaggi in questo gruppo devono essere inviati come una risposta a un altro messaggio.
|
|
190
|
+
|
|
191
|
+
È improbabile che i messaggi inviati al di fuori delle risposte siano visti da altri, perchè non vengono mostrati nei commenti del canale o nella chat di sistema <i>Risposte</i>, e sono anche difficili da moderare, perchè appaiono mescolati con i normali commenti del canale.
|
|
192
|
+
|
|
193
|
+
Ti ho privatamente rinviato il messaggio eliminato qui sopra; copialo, incollalo, e rimandalo come risposta ad un altro messaggio o a un post!
|
|
194
|
+
|
|
195
|
+
# This message is displayed when a message is *not* deleted by the bot.
|
|
196
|
+
message-notified =
|
|
197
|
+
⬆️ Il tuo messaggio non è stato inviato come risposta ad un altro messaggio.
|
|
198
|
+
|
|
199
|
+
È improbabile che i messaggi inviati al di fuori delle risposte siano visti da altri, perchè non vengono mostrati nei commenti del canale o nella chat di sistema <i>Risposte</i>, e sono anche difficili da moderare, perchè appaiono mescolati con i normali commenti del canale.
|
|
200
|
+
|
|
201
|
+
Se puoi, rimandalo come risposta ad un altro messaggio o a un post!
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
version = 1
|
|
2
|
-
revision =
|
|
2
|
+
revision = 5
|
|
3
3
|
requires-python = ">=3.14"
|
|
4
4
|
resolution-markers = [
|
|
5
5
|
"python_full_version >= '3.15'",
|
|
@@ -38,23 +38,23 @@ wheels = [
|
|
|
38
38
|
|
|
39
39
|
[[package]]
|
|
40
40
|
name = "certifi"
|
|
41
|
-
version = "2026.
|
|
41
|
+
version = "2026.10.19"
|
|
42
42
|
source = { registry = "https://pypi.org/simple" }
|
|
43
|
-
sdist = { url = "https://files.pythonhosted.org/packages/
|
|
43
|
+
sdist = { url = "https://files.pythonhosted.org/packages/a6/bd/1436c50cc46699de0230fbaacc1d1de7bfec413176099949e9d5112e88f2/certifi-2026.10.19.tar.gz", hash = "sha256:035c1e85572b141bf1c3a3eff0e33a8eb74917522f2559075ff8d2fea780a1ae", size = 137598, upload-time = "2026-10-20T02:24:16.604Z" }
|
|
44
44
|
wheels = [
|
|
45
|
-
{ url = "https://files.pythonhosted.org/packages/
|
|
45
|
+
{ url = "https://files.pythonhosted.org/packages/c4/51/29046e48f693c54e5b7412216d447a1d8362c9653148d98c02cdf65fa733/certifi-2026.10.19-py3-none-any.whl", hash = "sha256:42d35340cc5b9ba78e818ddbff0c5b1c2b779de448a340fd1b989f5fa8670e1b", size = 136464, upload-time = "2026-10-20T02:24:15.072Z" },
|
|
46
46
|
]
|
|
47
47
|
|
|
48
48
|
[[package]]
|
|
49
49
|
name = "cfig"
|
|
50
|
-
version = "0.3.
|
|
50
|
+
version = "0.3.11"
|
|
51
51
|
source = { registry = "https://pypi.org/simple" }
|
|
52
52
|
dependencies = [
|
|
53
53
|
{ name = "lazy-object-proxy" },
|
|
54
54
|
]
|
|
55
|
-
sdist = { url = "https://files.pythonhosted.org/packages/92/
|
|
55
|
+
sdist = { url = "https://files.pythonhosted.org/packages/f1/92/65049c75d8a25f2175a2c09a3e56c4d1e9657220ffb46f2297423780f75f/cfig-0.3.11.tar.gz", hash = "sha256:842e65e6789b2d826a2bbf1e41c65deeb72ffa0b326ee81ca1d05247fcca9aba", size = 192393, upload-time = "2026-10-01T03:00:02.131Z" }
|
|
56
56
|
wheels = [
|
|
57
|
-
{ url = "https://files.pythonhosted.org/packages/
|
|
57
|
+
{ url = "https://files.pythonhosted.org/packages/45/92/5e8fcda070effc14b98eefe7298272ebde86bae36cfe8f10a0a0bc409db9/cfig-0.3.11-py3-none-any.whl", hash = "sha256:afd35e42a3c9ec2f506bc20b9a1992d7ae665b740fc3cb7b89ceae316eaae9bb", size = 13254, upload-time = "2026-10-01T03:00:00.214Z" },
|
|
58
58
|
]
|
|
59
59
|
|
|
60
60
|
[package.optional-dependencies]
|
|
@@ -214,9 +214,10 @@ wheels = [
|
|
|
214
214
|
|
|
215
215
|
[[package]]
|
|
216
216
|
name = "threadkiller"
|
|
217
|
-
version = "4.1.
|
|
217
|
+
version = "4.1.1"
|
|
218
218
|
source = { editable = "." }
|
|
219
219
|
dependencies = [
|
|
220
|
+
{ name = "certifi" },
|
|
220
221
|
{ name = "cfig", extra = ["cli"] },
|
|
221
222
|
{ name = "coloredlogs" },
|
|
222
223
|
{ name = "fluent-runtime" },
|
|
@@ -225,7 +226,8 @@ dependencies = [
|
|
|
225
226
|
|
|
226
227
|
[package.metadata]
|
|
227
228
|
requires-dist = [
|
|
228
|
-
{ name = "
|
|
229
|
+
{ name = "certifi", specifier = ">=2026.10.19" },
|
|
230
|
+
{ name = "cfig", extras = ["cli"], specifier = "==0.3.11" },
|
|
229
231
|
{ name = "coloredlogs", specifier = ">=15.0.1" },
|
|
230
232
|
{ name = "fluent-runtime", git = "https://github.com/projectfluent/python-fluent?subdirectory=fluent.runtime" },
|
|
231
233
|
{ name = "python-telegram-bot", specifier = ">=22.8" },
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|