得益于Telegram开放API,加上手里正好有vps,因此跑一个tg实时更新名称的小项目绰绰有余。经过一番搜索,在Github上找到了这个项目,不够上次更新时间实在4年前,经过实测存在错误。因此fork更新了错误,让项目可以正常使用。
更新后的项目戳这里
准备
安装环境 python3,python3-pip,git
sudo apt-get install python3
sudo apt-get install python3-pip
apt-get install git
修改vps时间成成UTC+8/北京时间
查看vps时间
date -R
修改(选择UTC+8时间都可以,我选的是HK)
dpkg-reconfigure tzdata
准备tg的api_id和api_hash
首先去这个网站 https://my.telegram.org/,只要填App title和Short name即可获得api_id和api_hash。
部署
下载程序到VPS上
git clone https://github.com/littleocean/Telegram-Name-Updating.git
cd Telegram-Name-Updating
安装telethon
pip3 install -r requirements.txt
启动程序
python3 tg_username_update.py
根据提示输入api_id和api_hash。接着输入手机号和验证码,如果账号开启了二次验,证根据提示再输入二次验证的密码。最后看到 It works! 表明成功了。 默认的是每30秒钟按照一定概率更新一次lastname到特定模式。
完善-后台长期运行
nohup python3 tg_username_update.py &> log.txt &
其中,tg_username_update.py
为编写的Python程序名称,log.txt
为输出日志的文件名称。
如果您想停止该程序,请通过以下命令:
ps aux|grep your_program.py
该命令将会列出正在运行的您的程序的PID(Process ID)号。然后您可以使用kill
命令停止该程序的运行,例如:
kill PID
其中,PID
为您要停止程序的进程ID号。
检测该Python程序是否在运行
ps -ef | grep tg_username_update.py
该命令将会找到所有包含tg_username_update.py
字符串的进程,并列出其进程信息。如果您的Python程序正在运行,则会出现至少两行输出信息:
user 12345 1 0 20:40 ? 00:00:00 python3 tg_username_update.py
user 54321 12345 0 20:42 ? 00:00:00 [tg_username_update.py] <defunct>
其中,第一行显示出了进程的基本信息,包括进程所属用户、进程ID号、父进程ID号、进程状态(0表示正在运行)、进程运行时间和进程所占用的CPU百分比等信息。第二行显示进程状态为<defunct>
,表示该进程已死亡或被其他进程强制kill,但尚未被收回。
如果只有一个进程ID号,则表明您的Python程序正在运行;如果没有任何输出信息,则表明您的Python程序当前没有在运行。
如果想要在非连接状态下也能运行,可以使用tmux
安装tmux:在Ubuntu系统中,您可以执行以下命令安装tmux:
sudo apt-get update
sudo apt-get install tmux创建tmux会话:执行以下命令,创建一个名称为
my_session
的tmux会话:tmux new -s my_session
在tmux会话中运行Python程序: 在
my_session
会话中执行您的Python程序,例如:python3 tg_username_update.py
暂时离开会话:如果您想暂时离开会话,同时让程序在后台继续运行,请执行以下命令:
tmux detach
重新连接会话:如果您想重新连接到
my_session
会话,执行以下命令:tmux attach -t my_session
关闭tmux会话:如果您想关闭
my_session
会话,请先进入该会话,然后执行以下命令:exit
tmux kill-session -t my_session
到这里基本就完成了,快去tg看看名称更新了没
总结
进行以上操作后,过了几天效果会失效。不知是vps性能孱弱,程序崩溃的原因,还是安装的是虚假的后台自启。但几天后登录上vps运行demo又能起效,也不算太过麻烦。
还想提的一点是:参考项目的一段报错,作为新人自然不知道怎么改。在软件工程好鸽们的帮助下,查阅了emoji的API文档更改了错误表达才能正常运行,果然专业的就是不一样。自己鼓捣让复习时间少了几个hours,下次遇到不会赶紧向大佬递我 doge。