Mit diesem Hinweis möchte ich noch einmal zeigen, dass das Schätzen der Zeit für eine Aufgabe ein nicht triviales Problem ist. Selbst die elementaren Aufgaben beim Schreiben eines 15-zeiligen Skripts können sich über mehrere Stunden erstrecken.
Ich musste Informationen aus Markdown-Notizen in einen Telegrammkanal duplizieren. Es schien etwas zu rassusolivat zu sein - Ctrl+C
und Ctrl+V
zu helfen. Es wurde jedoch eine kleine Nuance festgestellt: Der Abschlag im Warenkorb ist nicht vollständig und der [text](http://example.com)
Client unterstĂĽtzt keine Links in diesem Format . Okay, dachte ich, lass uns versuchen, etwas dagegen zu unternehmen.
Ich versuche Nahkampf zu schlagen
Bearbeiten Sie Links mit Ihren Händen, besonders wenn es mehrere gibt - ziemlich trostlos. Besonders angesichts des Fehlers des Desktop-Clients , aufgrund dessen es unmöglich ist, ausstehende Nachrichten zu bearbeiten. Es ist möglich, von einem Tablet zu übertragen, aber es ist noch stressiger.
, ? : . , .
xclip
, . :
text/plain
UTF8_STRING
STRING
TEXT
application/x-td-field-text
application/x-td-field-tags
, Firefox:
text/html
text/_moz_htmlcontext
text/_moz_htmlinfo
UTF8_STRING
COMPOUND_TEXT
TEXT
STRING
text/plain;charset=utf-8
text/plain
text/x-moz-url-priv
- Libre Office Writer:
application/x-openoffice-embed-source-xml;windows_formatname="Star Embed Source (XML)"
text/rtf
text/richtext
text/html
text/plain;charset=utf-16
application/x-openoffice-objectdescriptor-xml;windows_formatname="Star Object Descriptor (XML)";classname="8BC6B165-B1B2-4EDD-aa47-dae2ee689dd6";typename="LibreOffice 6.0 Text Document";viewaspect="1";width="16999";height="2995";posx="0";posy="0"
text/plain;charset=utf-8
UTF8_STRING
STRING
application/x-libreoffice-internal-id-5387
, , . , , . , -, , - , Qt , , - . 5 , - .
-, , . , , , . . .
, , . ? PyPI 31 "telegram". Telethon — , , , , , , , MTProto .
, . , , , .
from telethon.sync import TelegramClient
import socks
api_id = 11111
api_hash = '...'
proxy=(socks.SOCKS4, '127.0.0.1', 9050)
with TelegramClient('anon', api_id, api_hash, proxy=proxy, timeout=60) as client:
print(client.get_me().stringify())
… - , . , HACKERMAN, . , .
We need to do deeper
, , Tor, :
$ curl -XGET httpbin.org/ip --socks5 localhost:9050
, — . , , Telethon. ? PySocks. , -. , . ...
Traceback (most recent call last):
File "test.py", line 110, in <module>
print("HTTP: " + opener.open("http://httpbin.org/ip").read().decode())
File "/usr/lib/python3.6/urllib/request.py", line 526, in open
response = self._open(req, data)
File "/usr/lib/python3.6/urllib/request.py", line 544, in _open
'_open', req)
File "/usr/lib/python3.6/urllib/request.py", line 504, in _call_chain
result = func(*args)
File "test.py", line 94, in http_open
return self.do_open(build, req)
File "/usr/lib/python3.6/urllib/request.py", line 1318, in do_open
encode_chunked=req.has_header('Transfer-encoding'))
File "/usr/lib/python3.6/http/client.py", line 1254, in request
self._send_request(method, url, body, headers, encode_chunked)
File "/usr/lib/python3.6/http/client.py", line 1300, in _send_request
self.endheaders(body, encode_chunked=encode_chunked)
File "/usr/lib/python3.6/http/client.py", line 1249, in endheaders
self._send_output(message_body, encode_chunked=encode_chunked)
File "/usr/lib/python3.6/http/client.py", line 1036, in _send_output
self.send(msg)
File "/usr/lib/python3.6/http/client.py", line 974, in send
self.connect()
File "test.py", line 55, in connect
((socket.IPPROTO_TCP, socket.TCP_NODELAY, 1),))
File "/usr/lib/python3/dist-packages/socks.py", line 200, in create_connection
proxy_username, proxy_password)
File "/usr/lib/python3/dist-packages/socks.py", line 322, in set_proxy
username.encode() if username else None,
AttributeError: 'int' object has no attribute 'encode'
… ? https , ! … 6 ? :(
15-20 - , — , . -c , . : , .
, , , . ? , - Telethon? , , . -:
DEBUG:telethon.network.mtprotosender:Connection attempt 2...
WARNING:telethon.network.mtprotosender:Attempt 2 at connecting failed: ProxyConnectionError: Error connecting to SOCKS4 proxy 127.0.0.1:9050: [Errno 115] Operation now in progress
? EINPROGRESS
, connect. , , ( ) , . : Tor . , 10- , 5 , …
, , , , , -. — Telethon. Telethon PySocks.
-
: -. — , , . Telethon . : , . , , . : - Telethon.
, - , , : . , .
- s.setblocking(False)
+ s.settimeout(timeout)
, , , . , , PR.
, , ? - , , . , , , . - : , :
api_key
api_hash
, /, ? , Telethon — . , ? , ? - ?
( ) Vault, , , … , , . . :
?)
...
… keyring. plain-text, , . .
, , — , — , , . 50 , 10, — , . - .
, , - , . !