#Changelog
caption
argument to send_document("user", "filepath" [, "caption"])
help(...)
docstrings a bit.pytg.sender.create_automatic_documentation(filename="DOCUMENTATION.md")
creates a markdown formatted file. This uses roughly the same generation process as the automatic docstrings.DOCUMENTATION_manual.md
command_send_message.py
example to show the simplest way to just send a message.bot_with_context.py
example to demonstrate how to build converations with the use of generators and the yield
statement.downloaded_file
parser. Returns a string for the file.status
parameter to Sender.send_typing
.AssertionError
with secret chats. #74File
to FilePath
to be more clear about it beeing a string. (Relates to #67)FailException
(subclasses IllegalResponseException
) will be raised if the CLI reports a error.Username
Argument becoming None
ResultParser
classes (not instances) will be instanciated automatically.Sender.message_get
not accepting the new permanent id's. #66source_of_reply.py
involving Sender.message_get
to find the first message of a stack of replies.Sender.channel_rename
, and supergroup fixes from PR #61. Thanks @huiyiqunSender.reply
, the previous Sender.reply_text
became an alias of that. (ea43060c3f53a3f947fd73cd624c85a412804408)Sender.resolve_username
#63 (34ffb3fd15e8e322873c679b74293c3c184284d3)__version__
Sender.contacts_search()
. #51No handlers could be found for logger "pytg.sender"
with Python 2. #33pip install
dependencies bug. #55result_timeout
kwarg for all Sender
functions. #49,#48. Thanks @the-gluSender.contact_add(...)
#35. Thanks @spikeekipsSender.get_self()
to #35. Thanks @spikeekipsluckydonaldUtils
(pip install luckydonald-utils
).Receiver.queued_messages()
, showing how many messages are waiting in the queue.Sender
not working with python 2. (issue #26, thanks @Meisolsson.)
:Big rename:
pytg2
-> pytg
Thats it.
It is named "pytg"
again. Hooray! @luckydonald took over maintainence.
help()
function:
official cli support. CLI fork not updated? That is a problem of the past!
No need for telejson any more, you can now run with the offical telegram-cli! Connecting to the cli for sending will now surrender after given retrys, and not loop forever. Also added a CHANGELOG file.
It was fun to develop that json bridge by myself though, and It hurts a bit too left that behind... 😢 But: I learned a lot about C and git on that journy, and I can let my experience with json flow back into the original cli. Everybody will profit from this.
pytg.Telegram
, pytg.sender.Sender
, pytg.receiver.Receiver
port_receive
, port_send
are unified to port
:
from
-> sender
(Reserved word in python)to
-> receiver
out
-> own
(out is not intuitive as not mandatory this cli has send the message but the account did.)peer
[added] This is where you most likly want to reply to. It will be the group where the message got send, or the user if it is a private message.print_name
cmd
the unique identifier string which will not change. (exception: secret chats might be replaced by a new one)name
is a display name. Either the first name or, if not set, the username.pytg.sender.Sender
all commands can now raise an exception if the connection (i.e. the connecting) to the cli failed after given number of retries. You should try to restart the cli.
all commands now have a retry_connect=<value>
parameter (as **kwargs
). retry_connect=2
means 3 tries, first try + 2 retries. This is the default setting. retry_connect=0
, retry_connect=False
and retry_connect=None
will not retry, retry_connect=True
or retry_connect= -1
means to retry infinite times. (this was the default before.)
send_photo()
: added optional attribute caption
(string, max length: 140).
send_video()
: added optionalcaption
parameter (max length: 140).
Example:
Updates for telejson beta compatibility. This version never got offically released before the telejson fork got replaced by vysheng's native json implementation. In the end that was way better.
Pytg2 (since v0.4.1
called pytg again) got overhauled to version 0.3.0
, which restructures heavily, BUT will decrease the CPU usage to around nothing. While the old versions need to parse the cli output directly, resuling in easy ways to exploit it, now it is safe, using json internal. You need the modified telejson-cli for that to work. Without the parsing we don't have to poll for new output ("Hey, got anything yet? And yet? And yet? ...") but just block until we got new output. The retrieval of new messaged is multitheaded, so you won't lose any messages if you do heavy and/or long operations between messages.
Also a nice new feature is an automatic download of files. (more about this, as soon as I get time to edit this...)
updated commands to reflect CLI changes, moved exceptions, better error output
In Detail:
send_typing(peer)
set_profile_name(first_name, last_name=None)
set_username(username)
set_profile_photo(path)
create_group_chat(chat_topic, user1, user2, user3, ... )
chat_set_name(chat, new_name) as mirror to rename_chat(chat, new_name)
rename_chat(chat, new_name)
search(pattern, peer=None, limit=None, from_unixtime=None, to_unixtime=None, offset=None)
(since commit bb2a631
)
uid
> userid
gid
> groupid
cmduser
> usercmd
cmdgroup
> groupcmd
Did I mention:
**
k encoding working!!!'\'
crashing bot.(Changelog restored from commit 888ebf
)
@luckydonald started working on a fork. (first commit ea331e
, called version 0.2 since 722361
)
Somewhere around commit 072c5f
Back in January 2014, @efaisal started working on pytg. The Telgram-CLI was brand new, and there was no way to interact with it programatically like you could much later with lua or json. Until then there was not a single bot in telegam. There was no talking. There was no smiling. -sigh- There were only rocks. quote reference