#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:
help(pytg.sender.Sender)
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
:
=4458) # sending and receiving now uses the same port. tg.Telegram(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.)
"luckydonald", "test message", retry_connect= 10 sender.send_msg(
send_photo()
: added optional attribute
caption
(string, max length: 140).
send_video()
: added optionalcaption
parameter (max length: 140).
Example:
#send_photo <peer> <file> [caption]
file)
sender.send_photo(peer, file, caption)
sender.send_photo(peer, "user#1234", "/path/to/image.png")
sender.send_photo("user#1234", "/path/to/image.png", "This is a image") sender.send_photo(
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