{"id":2125,"date":"2018-09-19T22:06:57","date_gmt":"2018-09-19T13:06:57","guid":{"rendered":"http:\/\/matoken.org\/blog\/?p=2125"},"modified":"2018-09-19T22:06:57","modified_gmt":"2018-09-19T13:06:57","slug":"try-telegram-cli-of-informal-cli-client-of-telegram","status":"publish","type":"post","link":"https:\/\/matoken.org\/blog\/2018\/09\/19\/try-telegram-cli-of-informal-cli-client-of-telegram\/","title":{"rendered":"Telegram \u306e\u975e\u516c\u5f0fcli client \u306e telegram-cli \u3092\u8a66\u3059"},"content":{"rendered":"<div id=\"__asciidoctor-preview-1__\" class=\"paragraph\">\n<p>Arm \u3067\u3082\u52d5\u304f\u304b\u306a?\u3068\u8a66\u3057\u3066\u307f\u307e\u3057\u305f\uff0e<\/p>\n<\/div>\n<div id=\"__asciidoctor-preview-2__\" class=\"ulist\">\n<ul>\n<li>\n<p><a href=\"https:\/\/github.com\/vysheng\/tg\">vysheng\/tg: telegram-cli<\/a><\/p>\n<\/li>\n<\/ul>\n<\/div>\n<div id=\"__asciidoctor-preview-3__\" class=\"listingblock\">\n<div class=\"title\">\u5fc5\u8981\u30d1\u30c3\u30b1\u30fc\u30b8\u306e\u5c0e\u5165<\/div>\n<div class=\"content\">\n<pre>$ sudo apt install libreadline-dev libconfig-dev libssl-dev lua5.2 liblua5.2-dev libevent-dev libjansson-dev libpython-dev make libssl1.0-dev<\/pre>\n<\/div>\n<\/div>\n<div id=\"__asciidoctor-preview-4__\" class=\"listingblock\">\n<div class=\"title\">source\u3092clone\u3059\u308b<\/div>\n<div class=\"content\">\n<pre>$ git clone --recursive https:\/\/github.com\/vysheng\/tg.git &amp;&amp; cd tg<\/pre>\n<\/div>\n<\/div>\n<div id=\"__asciidoctor-preview-5__\" class=\"listingblock\">\n<div class=\"title\">configure &amp; make<\/div>\n<div class=\"content\">\n<pre>$ .\/configure\r\n$ make<\/pre>\n<\/div>\n<\/div>\n<div id=\"__asciidoctor-preview-6__\" class=\"listingblock\">\n<div class=\"title\">build error1<\/div>\n<div class=\"content\">\n<pre>tgl\/crypto\/rsa_pem_openssl.c: In function \u2018TGLC_rsa_new\u2019:\r\ntgl\/crypto\/rsa_pem_openssl.c:41:6: error: dereferencing pointer to incomplete type \u2018RSA {aka struct rsa_st}\u2019\r\n   ret-&gt;e = unwrap_bn (TGLC_bn_new ());\r\n      ^~\r\ntgl\/crypto\/rsa_pem_openssl.c: In function \u2018TGLC_rsa_n\u2019:\r\ntgl\/crypto\/rsa_pem_openssl.c:52:1: error: control reaches end of non-void function [-Werror=return-type]\r\n RSA_GETTER(n);\r\n ^~~~~~~~~~\r\ntgl\/crypto\/rsa_pem_openssl.c: In function \u2018TGLC_rsa_e\u2019:\r\ntgl\/crypto\/rsa_pem_openssl.c:53:1: error: control reaches end of non-void function [-Werror=return-type]\r\n RSA_GETTER(e);\r\n ^~~~~~~~~~\r\ncc1: all warnings being treated as errors\r\nMakefile.tgl:20: recipe for target 'objs\/crypto\/rsa_pem_openssl.o' failed\r\nmake: *** [objs\/crypto\/rsa_pem_openssl.o] Error 1<\/pre>\n<\/div>\n<\/div>\n<div id=\"__asciidoctor-preview-7__\" class=\"paragraph\">\n<p>libssl-dev(1.1.1)\u3067\u306f\u52d5\u4f5c\u3057\u306a\u3044\u306e\u3067libssl1.0-dev\u306b\u5165\u308c\u66ff\u3048\u308b\uff0e <code style=\"font-family: monospace;\">sudo apt install libssl1.0-dev<\/code><\/p>\n<\/div>\n<div id=\"__asciidoctor-preview-8__\" class=\"listingblock\">\n<div class=\"title\">build error2<\/div>\n<div class=\"content\">\n<pre>gcc -I. -I. -I.\/tgl -w  -I\/usr\/local\/include -I\/usr\/include -I\/usr\/include -I\/usr\/include\/lua5.2  -DHAVE_CONFIG_H -Wall -Werror -Wextra -Wno-missing-field-initializers -Wno-deprecated-declarations -fno-strict-aliasing -fno-omit-frame-pointer -ggdb -Wno-unused-parameter -fPIC -iquote .\/tgl\/tl-parser -c -MP -MD -MF dep\/tl-parser.d -MQ objs\/tl-parser.o -o objs\/tl-parser.o tgl\/tl-parser\/tl-parser.c\r\ntgl\/tl-parser\/tl-parser.c:37:10: fatal error: zlib.h: \u305d\u306e\u3088\u3046\u306a\u30d5\u30a1\u30a4\u30eb\u3084\u30c7\u30a3\u30ec\u30af\u30c8\u30ea\u306f\u3042\u308a\u307e\u305b\u3093\r\n #include &lt;zlib.h&gt;\r\n          ^~~~~~~~\r\ncompilation terminated.\r\nmake: *** [Makefile.tl-parser:4: objs\/tl-parser.o] \u30a8\u30e9\u30fc 1<\/pre>\n<\/div>\n<\/div>\n<div id=\"__asciidoctor-preview-9__\" class=\"paragraph\">\n<p>zlib1g-dev \u3092\u5c0e\u5165\u3059\u308b\uff0e <code style=\"font-family: monospace;\">sudo apt install zlib1g-dev<\/code><\/p>\n<\/div>\n<div id=\"__asciidoctor-preview-10__\" class=\"listingblock\">\n<div class=\"title\">Raspbian stretch\u3067\u306e\u5b9f\u884c\u6642\u30a8\u30e9\u30fc(32bit\u74b0\u5883\u3067\u306e\u4e0d\u5177\u5408?)<\/div>\n<div class=\"content\">\n<pre>$ bin\/telegram-cli\r\nTelegram-cli version 1.4.1, Copyright (C) 2013-2015 Vitaly Valtman\r\nTelegram-cli comes with ABSOLUTELY NO WARRANTY; for details type `show_license'.\r\nThis is free software, and you are welcome to redistribute it\r\nunder certain conditions; type `show_license' for details.\r\nTelegram-cli uses libtgl version 2.1.0\r\nTelegram-cli includes software developed by the OpenSSL Project\r\nfor use in the OpenSSL Toolkit. (http:\/\/www.openssl.org\/)\r\nI: config dir=[\/home\/pi\/.telegram-cli]\r\n&gt; telegram-cli: tgl\/mtproto-utils.c:101: BN2ull: Assertion `0' failed.\r\nSIGNAL received<\/pre>\n<\/div>\n<\/div>\n<div id=\"__asciidoctor-preview-11__\" class=\"paragraph\">\n<p>\u4ee5\u4e0b\u306e\u4fee\u6b63\u3092\u884c\u3044\uff0c <code style=\"font-family: monospace;\">make clean<\/code> \u3057\u3066 build \u3057\u306a\u304a\u3059\uff0e<\/p>\n<\/div>\n<div id=\"__asciidoctor-preview-12__\" class=\"listingblock\">\n<div class=\"content\">\n<pre>$ diff -ud tgl\/mtproto-utils.c.org tgl\/mtproto-utils.c\r\n--- tgl\/mtproto-utils.c.org     2018-09-19 21:01:44.878560077 +0900\r\n+++ tgl\/mtproto-utils.c 2018-09-19 20:59:55.778295550 +0900\r\n@@ -98,13 +98,13 @@\r\n   if (sizeof (unsigned long) == 8) {\r\n\t return TGLC_bn_get_word (b);\r\n   } else if (sizeof (unsigned long long) == 8) {\r\n-    assert (0); \/\/ As long as nobody ever uses this code, assume it is broken.\r\n+    assert (0);  As long as nobody ever uses this code, assume it is broken.\r\n\t unsigned long long tmp;\r\n\t \/* Here be dragons, but it should be okay due to be64toh *\/\r\n\t TGLC_bn_bn2bin (b, (unsigned char *) &amp;tmp);\r\n\t return be64toh (tmp);\r\n   } else {\r\n-    assert (0);\r\n+\/\/    assert (0);\r\n   }\r\n }<\/pre>\n<\/div>\n<\/div>\n<div id=\"__asciidoctor-preview-13__\" class=\"listingblock\">\n<div class=\"content\">\n<pre>$ make clean\r\n$ .\/configure\r\n$ make<\/pre>\n<\/div>\n<\/div>\n<div id=\"__asciidoctor-preview-14__\" class=\"listingblock\">\n<div class=\"title\">\u521d\u56de\u5b9f\u884c\u6642\u306fSMS\u8a8d\u8a3c\u304c\u5fc5\u8981<\/div>\n<div class=\"content\">\n<pre>$ bin\/telegram-cli\r\nTelegram-cli version 1.4.1, Copyright (C) 2013-2015 Vitaly Valtman\r\nTelegram-cli comes with ABSOLUTELY NO WARRANTY; for details type `show_license'.\r\nThis is free software, and you are welcome to redistribute it\r\nunder certain conditions; type `show_license' for details.\r\nTelegram-cli uses libtgl version 2.1.0\r\nTelegram-cli includes software developed by the OpenSSL Project\r\nfor use in the OpenSSL Toolkit. (http:\/\/www.openssl.org\/)\r\nI: config dir=[\/home\/mk\/.telegram-cli]\r\n[\/home\/mk\/.telegram-cli] created\r\n[\/home\/mk\/.telegram-cli\/downloads] created\r\nphone number: +81-9000000000\r\ncode ('CALL' for phone code): 16802\r\nUser matoken updated flags\r\nUser matoken online (was online [2018\/09\/18 23:55:32])\r\nUser matoken offline (was online [2018\/09\/18 23:50:35])<\/pre>\n<\/div>\n<\/div>\n<div id=\"__asciidoctor-preview-15__\" class=\"listingblock\">\n<div class=\"title\">\u8a8d\u8a3c\u3092\u884c\u3046\u3068\u30e1\u30c3\u30bb\u30fc\u30b8\u304c\u98db\u3093\u3067\u304f\u308b<\/div>\n<div class=\"content\">\n<pre>matoken,\r\n\r\nWe detected a login into your account from a new device on 19\/09\/2018 at 12:28:55 UTC.\r\n\r\nDevice: Unix Console\r\nLocation: Shizuoka, Japan (IP = 180.131.110.140)\r\n\r\nIf this wasn't you, you can go to Settings - Privacy and Security - Sessions and terminate that session.\r\n\r\nIf you think that somebody logged in to your account against your will, you can enable two-step verification in Privacy and Security settings.\r\n\r\nSincerely,\r\nThe Telegram Team<\/pre>\n<\/div>\n<\/div>\n<div id=\"__asciidoctor-preview-16__\" class=\"listingblock\">\n<div class=\"title\">\u30e1\u30c3\u30bb\u30fc\u30b8\u3092\u9001\u4fe1\u3057\u3066\u307f\u308b<\/div>\n<div class=\"content\">\n<pre>&gt; msg @matoken hello<\/pre>\n<\/div>\n<\/div>\n<div id=\"__asciidoctor-preview-17__\" class=\"listingblock\">\n<div class=\"title\">telegram-cli \u306e help<\/div>\n<div class=\"content\">\n<pre>$ bin\/telegram-cli --help\r\ntelegram-cli Usage\r\n  --phone\/-u                           specify username (would not be asked during authorization)\r\n  --rsa-key\/-k                         specify location of public key (possible multiple entries)\r\n  --verbosity\/-v                       increase verbosity (0-ERROR 1-WARNIN 2-NOTICE 3+-DEBUG-levels)\r\n  --enable-msg-id\/-N                   message num mode\r\n  --config\/-c                          config file name\r\n  --profile\/-p                         use specified profile\r\n  --log-level\/-l                       log level\r\n  --sync-from-start\/-f                 during authorization fetch all messages since registration\r\n  --disable-auto-accept\/-E             disable auto accept of encrypted chats\r\n  --lua-script\/-s                      lua script file\r\n  --wait-dialog-list\/-W                send dialog_list query and wait for answer before reading input\r\n  --disable-colors\/-C                  disable color output\r\n  --disable-readline\/-R                disable readline\r\n  --alert\/-A                           enable bell notifications\r\n  --daemonize\/-d                       daemon mode\r\n  --logname\/-L &lt;log-name&gt;              log file name\r\n  --username\/-U &lt;user-name&gt;            change uid after start\r\n  --groupname\/-G &lt;group-name&gt;          change gid after start\r\n  --disable-output\/-D                  disable output\r\n  --tcp-port\/-P &lt;port&gt;                 port to listen for input commands\r\n  --udp-socket\/-S &lt;socket-name&gt;        unix socket to create\r\n  --exec\/-e &lt;commands&gt;                 make commands end exit\r\n  --disable-names\/-I                   use user and chat IDs in updates instead of names\r\n  --enable-ipv6\/-6                     use ipv6 (may be unstable)\r\n  --help\/-h                            prints this help\r\n  --accept-any-tcp                     accepts tcp connections from any src (only loopback by default)\r\n  --disable-link-preview               disables server-side previews to links\r\n  --bot\/-b                             bot mode\r\n  --json                               prints answers and values in json format\r\n  --permanent-msg-ids                  use permanent msg ids\r\n  --permanent-peer-ids                 use permanent peer ids<\/pre>\n<\/div>\n<\/div>\n<div id=\"__asciidoctor-preview-18__\" class=\"listingblock\">\n<div class=\"title\">telegram-cli \u8d77\u52d5\u6642\u306ehelp<\/div>\n<div class=\"content\">\n<pre>$ bin\/telegram-cli -e help\r\nTelegram-cli version 1.4.1, Copyright (C) 2013-2015 Vitaly Valtman\r\nTelegram-cli comes with ABSOLUTELY NO WARRANTY; for details type `show_license'.\r\nThis is free software, and you are welcome to redistribute it\r\nunder certain conditions; type `show_license' for details.\r\nTelegram-cli uses libtgl version 2.1.0\r\nTelegram-cli includes software developed by the OpenSSL Project\r\nfor use in the OpenSSL Toolkit. (http:\/\/www.openssl.org\/)\r\nI: config dir=[\/home\/pi\/.telegram-cli]\r\n[33;1maccept_secret_chat &lt;secret chat&gt;  Accepts secret chat. Only useful with -E option\r\nadd_contact &lt;phone&gt; &lt;first name&gt; &lt;last name&gt;    Tries to add user to contact list\r\nblock_user &lt;user&gt;       Blocks user\r\nbroadcast &lt;user&gt;+ &lt;text&gt;        Sends text to several users at once\r\nchannel_get_admins &lt;channel&gt; [limit=100] [offset=0]     Gets channel admins\r\nchannel_get_members &lt;channel&gt; [limit=100] [offset=0]    Gets channel members\r\nchannel_info &lt;channel&gt;  Prints info about channel (id, members, admin, etc.)\r\nchannel_invite &lt;channel&gt; &lt;user&gt; Invites user to channel\r\nchannel_join &lt;channel&gt;  Joins to channel\r\nchannel_kick &lt;channel&gt; &lt;user&gt;   Kicks user from channel\r\nchannel_leave &lt;channel&gt; Leaves from channel\r\nchannel_list [limit=100] [offset=0]     List of last channels\r\nchannel_set_about &lt;channel&gt; &lt;about&gt;     Sets channel about info.\r\nchannel_set_admin &lt;channel&gt; &lt;admin&gt; &lt;type&gt;      Sets channel admin. 0 - not admin, 1 - moderator, 2 - editor\r\nchannel_set_username &lt;channel&gt; &lt;username&gt;       Sets channel username info.\r\nchannel_set_photo &lt;channel&gt; &lt;filename&gt;  Sets channel photo. Photo will be cropped to square\r\nchat_add_user &lt;chat&gt; &lt;user&gt; [msgs-to-forward]   Adds user to chat. Sends him last msgs-to-forward message from this chat. Default 100\r\nchat_del_user &lt;chat&gt; &lt;user&gt;     Deletes user from chat\r\nchat_info &lt;chat&gt;        Prints info about chat (id, members, admin, etc.)\r\nchat_set_photo &lt;chat&gt; &lt;filename&gt;        Sets chat photo. Photo will be cropped to square\r\nchat_upgrade &lt;chat&gt;     Upgrades chat to megagroup\r\nchat_with_peer &lt;peer&gt;   Interface option. All input will be treated as messages to this peer. Type \/quit to end this mode\r\nclear   Clears all data and exits. For debug.\r\ncontact_list    Prints contact list\r\ncontact_search username Searches user by username\r\ncreate_channel &lt;name&gt; &lt;about&gt; &lt;user&gt;+   Creates channel with users\r\ncreate_group_chat &lt;name&gt; &lt;user&gt;+        Creates group chat with users\r\ncreate_secret_chat &lt;user&gt;       Starts creation of secret chat\r\ndel_contact &lt;user&gt;      Deletes contact from contact list\r\ndelete_msg &lt;msg-id&gt;     Deletes message\r\ndialog_list [limit=100] [offset=0]      List of last conversations\r\nexport_card     Prints card that can be imported by another user with import_card method\r\nexport_channel_link     Prints channel link that can be used to join to channel\r\nexport_chat_link        Prints chat link that can be used to join to chat\r\nfwd &lt;peer&gt; &lt;msg-id&gt;+    Forwards message to peer. Forward to secret chats is forbidden\r\nfwd_media &lt;peer&gt; &lt;msg-id&gt;       Forwards message media to peer. Forward to secret chats is forbidden. Result slightly differs from fwd\r\nget_terms_of_service    Prints telegram's terms of service\r\nget_message &lt;msg-id&gt;    Get message by id\r\nget_self        Get our user info\r\nhelp [command]  Prints this help\r\nhistory &lt;peer&gt; [limit] [offset] Prints messages with this peer (most recent message lower). Also marks messages as read\r\nimport_card &lt;card&gt;      Gets user by card and prints it name. You can then send messages to him as usual\r\nimport_chat_link &lt;hash&gt; Joins to chat by link\r\nimport_channel_link &lt;hash&gt;      Joins to channel by link\r\nload_audio &lt;msg-id&gt;     Downloads file to downloads dirs. Prints file name after download end\r\nload_channel_photo &lt;channel&gt;    Downloads file to downloads dirs. Prints file name after download end\r\nload_chat_photo &lt;chat&gt;  Downloads file to downloads dirs. Prints file name after download end\r\nload_document &lt;msg-id&gt;  Downloads file to downloads dirs. Prints file name after download end\r\nload_document_thumb &lt;msg-id&gt;    Downloads file to downloads dirs. Prints file name after download end\r\nload_file &lt;msg-id&gt;      Downloads file to downloads dirs. Prints file name after download end\r\nload_file_thumb &lt;msg-id&gt;        Downloads file to downloads dirs. Prints file name after download end\r\nload_photo &lt;msg-id&gt;     Downloads file to downloads dirs. Prints file name after download end\r\nload_user_photo &lt;user&gt;  Downloads file to downloads dirs. Prints file name after download end\r\nload_video &lt;msg-id&gt;     Downloads file to downloads dirs. Prints file name after download end\r\nload_video_thumb &lt;msg-id&gt;       Downloads file to downloads dirs. Prints file name after download end\r\nmain_session    Sends updates to this connection (or terminal). Useful only with listening socket\r\nmark_read &lt;peer&gt;        Marks messages with peer as read\r\nmsg &lt;peer&gt; &lt;text&gt;       Sends text message to peer\r\nmsg &lt;peer&gt; &lt;kbd&gt; &lt;text&gt; Sends text message to peer with custom kbd\r\npost &lt;peer&gt; &lt;text&gt;      Sends text message to peer as admin\r\npost_audio &lt;peer&gt; &lt;file&gt;        Posts audio to peer\r\npost_document &lt;peer&gt; &lt;file&gt;     Posts document to peer\r\npost_file &lt;peer&gt; &lt;file&gt; Sends document to peer\r\npost_location &lt;peer&gt; &lt;latitude&gt; &lt;longitude&gt;     Sends geo location\r\npost_photo &lt;peer&gt; &lt;file&gt;       Sends photo to peer\r\npost_text &lt;peer&gt; &lt;file&gt; Sends contents of text file as plain text message\r\npost_video &lt;peer&gt; &lt;file&gt;       Sends video to peer\r\nquit    Quits immediately\r\nrename_channel &lt;channel&gt; &lt;new name&gt;     Renames channel\r\nrename_chat &lt;chat&gt; &lt;new name&gt;   Renames chat\r\nrename_contact &lt;user&gt; &lt;first name&gt; &lt;last name&gt;  Renames contact\r\nreply &lt;msg-id&gt; &lt;text&gt;   Sends text reply to message\r\nreply_audio &lt;msg-id&gt; &lt;file&gt;     Sends audio to peer\r\nreply_contact &lt;msg-id&gt; &lt;phone&gt; &lt;first-name&gt; &lt;last-name&gt; Sends contact (not necessary telegram user)\r\nreply_document &lt;msg-id&gt; &lt;file&gt;  Sends document to peer\r\nreply_file &lt;msg-id&gt; &lt;file&gt;      Sends document to peer\r\nreply_location &lt;msg-id&gt; &lt;latitude&gt; &lt;longitude&gt;  Sends geo location\r\nreply_photo &lt;msg-id&gt; &lt;file&gt;    Sends photo to peer\r\nreply_video &lt;msg-id&gt; &lt;file&gt;     Sends video to peer\r\nresolve_username username       Searches user by username\r\nsafe_quit       Waits for all queries to end, then quits\r\nsearch [peer] [limit] [from] [to] [offset] pattern      Search for pattern in messages from date from to date to (unixtime) in messages with peer (if peer not\r\npresent, in all messages)\r\nsend_audio &lt;peer&gt; &lt;file&gt;        Sends audio to peer\r\nsend_contact &lt;peer&gt; &lt;phone&gt; &lt;first-name&gt; &lt;last-name&gt;    Sends contact (not necessary telegram user)\r\nsend_document &lt;peer&gt; &lt;file&gt;     Sends document to peer\r\nsend_file &lt;peer&gt; &lt;file&gt; Sends document to peer\r\nsend_location &lt;peer&gt; &lt;latitude&gt; &lt;longitude&gt;     Sends geo location\r\nsend_photo &lt;peer&gt; &lt;file&gt;       Sends photo to peer\r\nsend_text &lt;peer&gt; &lt;file&gt; Sends contents of text file as plain text message\r\nsend_typing &lt;peer&gt; [status]     Sends typing notification. You can supply a custom status (range 0-10): none, typing, cancel, record video, upload video, recor\r\nd audio, upload audio, upload photo, upload document, geo, choose contact.\r\nsend_typing_abort &lt;peer&gt;        Sends typing notification abort\r\nsend_video &lt;peer&gt; &lt;file&gt;       Sends video to peer\r\nset &lt;param&gt; &lt;value&gt;     Sets value of param. Currently available: log_level, debug_verbosity, alarm, msg_num\r\nset_password &lt;hint&gt;     Sets password\r\nset_profile_name &lt;first-name&gt; &lt;last-name&gt;       Sets profile name.\r\nset_profile_photo &lt;filename&gt;    Sets profile photo. Photo will be cropped to square\r\nset_ttl &lt;secret chat&gt;   Sets secret chat ttl. Client itself ignores ttl\r\nset_username &lt;name&gt;     Sets username.\r\nset_phone_number &lt;phone&gt;        Changes the phone number of this account\r\nshow_license    Prints contents of GPL license\r\nstart_bot &lt;bot&gt; &lt;chat&gt; &lt;data&gt;   Adds bot to chat\r\nstats   For debug purpose\r\nstatus_online   Sets status as online\r\nstatus_offline  Sets status as offline\r\nunblock_user &lt;user&gt;     Unblocks user\r\nuser_info &lt;user&gt;        Prints info about user (id, last online, phone)\r\nversion Prints client and library version\r\nview_audio &lt;msg-id&gt;     Downloads file to downloads dirs. Then tries to open it with system default action\r\nview_channel_photo &lt;channel&gt;    Downloads file to downloads dirs. Then tries to open it with system default action\r\nview_chat_photo &lt;chat&gt;  Downloads file to downloads dirs. Then tries to open it with system default action\r\nview_document &lt;msg-id&gt;  Downloads file to downloads dirs. Then tries to open it with system default action\r\nview_document_thumb &lt;msg-id&gt;    Downloads file to downloads dirs. Then tries to open it with system default action\r\nview_file &lt;msg-id&gt;      Downloads file to downloads dirs. Then tries to open it with system default action\r\nview_file_thumb &lt;msg-id&gt;        Downloads file to downloads dirs. Then tries to open it with system default action\r\nview_photo &lt;msg-id&gt;     Downloads file to downloads dirs. Then tries to open it with system default action\r\nview_user_photo &lt;user&gt;  Downloads file to downloads dirs. Then tries to open it with system default action\r\nview_video &lt;msg-id&gt;     Downloads file to downloads dirs. Then tries to open it with system default action\r\nview_video_thumb &lt;msg-id&gt;       Downloads file to downloads dirs. Then tries to open it with system default action\r\nview &lt;msg-id&gt;   Tries to view message contents\r\nvisualize_key &lt;secret chat&gt;     Prints visualization of encryption key (first 16 bytes sha1 of it in fact)\r\n[0mAll done. Exit\r\nhalt<\/pre>\n<\/div>\n<\/div>\n<div id=\"__asciidoctor-preview-19__\" class=\"paragraph\">\n<p>\u5927\u62b5\u306e\u3053\u3068\u306f\u51fa\u6765\u308b\u611f\u3058\u3067\u3059\uff0e<\/p>\n<\/div>\n<div id=\"__asciidoctor-preview-20__\" class=\"listingblock\">\n<div class=\"title\">\u8a66\u3057\u305f\u74b0\u58831<\/div>\n<div class=\"content\">\n<pre>$ git log --decorate|head -7\r\ncommit 6547c0b21b977b327b3c5e8142963f4bc246187a (HEAD -&gt; master, origin\/master, origin\/HEAD)\r\nMerge: 443793d 160231b\r\nAuthor: V V &lt;vvaltman@aurum&gt;\r\nDate:   Wed Mar 23 14:42:53 2016 +0300\r\n\r\n    Merge github.com:vysheng\/tg\r\n\r\n$ dpkg-query -W libreadline-dev libconfig-dev libssl-dev lua5.2 liblua5.2-dev libevent-dev libjansson-dev libpython-dev make libssl1.0-dev\r\nlibconfig-dev:armhf     1.5-0.3\r\nlibevent-dev    2.0.21-stable-3\r\nlibjansson-dev:armhf    2.9-1\r\nliblua5.2-dev:armhf     5.2.4-1.1\r\nlibpython-dev:armhf     2.7.13-2\r\nlibreadline-dev:armhf   7.0-3\r\nlibssl-dev\r\nlibssl1.0-dev:armhf     1.0.2l-2+deb9u3\r\nlua5.2  5.2.4-1.1\r\nmake    4.1-9.1\r\n$ lsb_release -d\r\nDescription:    Raspbian GNU\/Linux 9.4 (stretch)\r\n$ uname -m\r\narmv7l\r\n$ cat \/proc\/device-tree\/model ;echo\r\nRaspberry Pi 2 Model B Rev 1.1<\/pre>\n<\/div>\n<\/div>\n<div id=\"__asciidoctor-preview-21__\" class=\"listingblock\">\n<div class=\"title\">\u8a66\u3057\u305f\u74b0\u58832<\/div>\n<div class=\"content\">\n<pre>$ git log --decorate|head -7\r\ncommit 6547c0b21b977b327b3c5e8142963f4bc246187a (HEAD -&gt; master, origin\/master, origin\/HEAD)\r\nMerge: 443793d 160231b\r\nAuthor: V V &lt;vvaltman@aurum&gt;\r\nDate:   Wed Mar 23 14:42:53 2016 +0300\r\n\r\n    Merge github.com:vysheng\/tg\r\n\r\n$ dpkg-query -W libreadline-dev libconfig-dev libssl-dev lua5.2 liblua5.2-dev libevent-dev libjansson-dev libpython-dev make libssl1.0-dev\r\nlibconfig-dev:amd64     1.5-0.4\r\nlibevent-dev    2.1.8-stable-4build1\r\nlibjansson-dev:amd64    2.11-1\r\nliblua5.2-dev:amd64     5.2.4-1.1build1\r\nlibpython-dev:amd64     2.7.15~rc1-1\r\nlibreadline-dev:amd64   7.0-3\r\nlibssl-dev\r\nlibssl1.0-dev:amd64     1.0.2n-1ubuntu5.1\r\nlua5.2  5.2.4-1.1build1\r\nmake    4.1-9.1ubuntu1\r\n$ lsb_release -d\r\nDescription:    Ubuntu 18.04.1 LTS\r\n(mk)-(jobs:0)-(~\/src\/tg)\r\n$ uname -m\r\nx86_64<\/pre>\n<\/div>\n<\/div>\n","protected":false},"excerpt":{"rendered":"<p>Arm \u3067\u3082\u52d5\u304f\u304b\u306a?\u3068\u8a66\u3057\u3066\u307f\u307e\u3057\u305f\uff0e vysheng\/tg: telegram-cli \u5fc5\u8981\u30d1\u30c3\u30b1\u30fc\u30b8\u306e\u5c0e\u5165 $ sudo apt install libreadline-dev libconfig-dev libs [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_monsterinsights_skip_tracking":false,"_monsterinsights_sitenote_active":false,"_monsterinsights_sitenote_note":"","_monsterinsights_sitenote_category":0,"webmentions_disabled_pings":false,"webmentions_disabled":false,"activitypub_content_warning":"","activitypub_content_visibility":"","activitypub_max_image_attachments":4,"activitypub_interaction_policy_quote":"anyone","activitypub_status":"","footnotes":""},"categories":[372,91,401,63],"tags":[],"class_list":["post-2125","post","type-post","status-publish","format-standard","hentry","category-bionic-beaver18-04lts","category-raspberry-pi","category-raspbian-stretch","category-ubuntu"],"_links":{"self":[{"href":"https:\/\/matoken.org\/blog\/wp-json\/wp\/v2\/posts\/2125","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/matoken.org\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/matoken.org\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/matoken.org\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/matoken.org\/blog\/wp-json\/wp\/v2\/comments?post=2125"}],"version-history":[{"count":0,"href":"https:\/\/matoken.org\/blog\/wp-json\/wp\/v2\/posts\/2125\/revisions"}],"wp:attachment":[{"href":"https:\/\/matoken.org\/blog\/wp-json\/wp\/v2\/media?parent=2125"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/matoken.org\/blog\/wp-json\/wp\/v2\/categories?post=2125"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/matoken.org\/blog\/wp-json\/wp\/v2\/tags?post=2125"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}