Coder Social home page Coder Social logo

pidgin-wechat's Introduction

About Pidgin-wechat

pidgin-wechat is a protocol plugin for pidgin/libpurple. It's based on Web Wechat and supports basic message receiving and picture receiving.

Screenshot

pidgin-wechat screenshot pidgin-wechat screenshot

Build

You can use cargo to build it.

cargo build --release

Build dependencies

  • clang
  • libpurple (development package)

Build dependencies are maybe not fully listed. I have just tested on Archlinux with nightly rust complier.

You can download the compiled binary file in the Releases page.

Install

If you build using cargo, the binary file is placed at the target/release or target/debug directory.

To install this plugin, just need to copy the binary to your plugins direcotry and restart pidgin.

mkdir -p ~/.purple/plugins
cp -f libwechat.so ~/.purple/plugins/

Roadmap

Now this project is still in technical validation. I need to test some wechat features and think about how to implement them in pidgin.

Progress

  • login
  • send/receive text message
  • send/receive text message in group chat
  • receive image message
  • receive custom sticker
  • upload file & image
  • buddy icon
  • wechat official accounts
  • rich text message
  • voice message
  • built in sticker
  • system message notify

Hack

Most common problems:

  • login failed, you can see 1101 error code at your terminal, need to relogin.

The log of pidgin-wechat is printed to the standard output. Start pidgin in your terminal, and then you can see it.

If it has crashed, you can use coredumpctl -1 info pidgin to check core dump info. It's very useful for finding out problems. (Make sure you install the coredump package)

File list

.
├── Cargo.lock
├── Cargo.toml
├── README.md
├── screenshot
│   ├── 2017-04-13-211208_887x708_scrot.png
│   └── 2017-04-13-211409_302x579_scrot.png
└── src
    ├── chatroom.rs                                 struct of chatroom infomation
    ├── message.rs                                  struct of message
    ├── pointer.rs                                  a wrapper of raw C pointer
    ├── server.rs                                   core protocol file
    ├── user.rs                                     struct of user infomation
    └── wechat.rs                                   core pidgin interface file

Q&A

Why use pidgin/libpurple?

The desktop wechat implementation already exists and maybe has modern UI, but I want to login to all my IMs in the same tool (like IRC, MSN, etc). I choose pidgin because it supports a lot of chat protocols.

Is red packet/custom sticker supported?

Not supported. Because this program is base on web wechat protocol, if the web wechat doesn't support these features, we can't either.

LICENSE

This project is licensed under WTFPL.

pidgin-wechat's People

Contributors

louy2 avatar sbwtw avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

pidgin-wechat's Issues

Precompiled Ubuntu and Windows plugins

Dear team,

This is a very interesting proect. However I am facing issues with compiling it.
Would it be possible to provide precompiled .so and .dlls ?

  • My system:
    Ubuntu 20.04

  • My pidgin version is:
    Pidgin 2.13.0 (libpurple 2.13.0)

Thanks
谢谢

Working with spectrum 2

Please ask the following questions, Thanks!

  • My system:

  • My pidgin version is:

  • My pidgin-wechat version is:

  • standard output:

  • coredump file or debugger's stack trace:

I have spectrum 2 running and added purple-wechat.so to my libraries.. I need to set id fir the transport ..normally it would be prpl-xxxxx like e.g. prpl-facebook

This plugin has id prpl-sbwtw-web_wechat but pidgin wouldn't recognize it .. invalid protocol.. could you please point me to the right protocol info?

Compilation problem in Ubuntu

Please ask the following questions, Thanks!

  • My system:
    Linux angelcampoverde-MacBookAir 5.3.0-40-generic #32~18.04.1-Ubuntu SMP Mon Feb 3 14:05:59 UTC 2020 x86_64 x86_64 x86_64 GNU/Linux

  • My pidgin version is:
    Pidgin 2.12.0 (libpurple 2.12.0)
    However it does not matter, the problem is compiling the library

  • My pidgin-wechat version is:
    eecd9c6 commit

  • standard output: The compilation message is:

    Compiling crossbeam-epoch v0.4.1
    Compiling thread_local v0.3.5
    Compiling syntex_errors v0.58.1
    Compiling clap v2.31.2
    Compiling idna v0.1.4
    error: failed to run custom build command for openssl-sys v0.9.27

Caused by:
process didn't exit successfully: /home/angelcampoverde/Downloads/pidgin-wechat/target/release/build/openssl-sys-228e80ab7792ac0b/build-script-build (exit code: 101)
--- stdout
cargo:rerun-if-env-changed=X86_64_UNKNOWN_LINUX_GNU_OPENSSL_LIB_DIR
cargo:rerun-if-env-changed=OPENSSL_LIB_DIR
cargo:rerun-if-env-changed=X86_64_UNKNOWN_LINUX_GNU_OPENSSL_INCLUDE_DIR
cargo:rerun-if-env-changed=OPENSSL_INCLUDE_DIR
cargo:rerun-if-env-changed=X86_64_UNKNOWN_LINUX_GNU_OPENSSL_DIR
cargo:rerun-if-env-changed=OPENSSL_DIR
run pkg_config fail: "\"pkg-config\" \"--libs\" \"--cflags\" \"openssl\" did not exit successfully: exit code: 1\n--- stderr\nPackage openssl was not found in the pkg-config search path.\nPerhaps you should add the directory containing `openssl.pc'\nto the PKG_CONFIG_PATH environment variable\nNo package 'openssl' found\n"

--- stderr
thread 'main' panicked at '

Could not find directory of OpenSSL installation, and this -sys crate cannot
proceed without this knowledge. If OpenSSL is installed and this crate had
trouble finding it, you can set the OPENSSL_DIR environment variable for the
compilation process.

If you're in a situation where you think the directory should be found
automatically, please open a bug at https://github.com/sfackler/rust-openssl
and include information about your system as well as this message.

$HOST = x86_64-unknown-linux-gnu
$TARGET = x86_64-unknown-linux-gnu
openssl-sys = 0.9.27

', /home/angelcampoverde/.cargo/registry/src/github.com-1ecc6299db9ec823/openssl-sys-0.9.27/build.rs:213:5
note: run with RUST_BACKTRACE=1 environment variable to display a backtrace.

warning: build failed, waiting for other jobs to finish...
error: build failed

  • coredump file or debugger's stack trace:

v0.1.1 Pre-release 一直无法登录

v0.1.1 Pre-release
扫描二维码之后提示:

You are already logged in other devices.
please logout and restart pidgin.
Wecheat Notice

终端能看到如下字样:

……
sync check url: https://webpush.web.wechat.com/cgi-bin/mmwebwx-bin/synccheck?sid=yvTm9ZGniq9hTGWF&uin=285770615&skey=@crypt_e0cf56_f7743b5cdd1f276e8e620dc198134029&deviceid=e561494459443000&synckey=&r=1494459465000&_=1494459465000
window.synccheck={retcode:"1100",selector:"0"} = 1100 - 0

请教下如何解决。
git下来自己编译,总是出错不通过。

非常看好这个项目

在linux下面实用微信太痛苦了,如果能在pidfin里面使用真是福音。

但目前这个项目的可用性还不是很高,能否考虑实用wxbot项目的成果以加快功能开发和实现。

Compilation on Debian 9

Please ask the following questions, Thanks!

  • My system:

    Debian GNU/Linux buster/sid

  • My pidgin version is:

    Pidgin 2.12.0 (libpurple 2.12.0)

  • My pidgin-wechat version is:

    master (dc3adda)

  • standard output:

Gtk-Message: Failed to load module "canberra-gtk-module"
(12:43:08) prefs: Reading /home/user/.purple/prefs.xml
(12:43:08) prefs: Finished reading /home/user/.purple/prefs.xml
(12:43:08) prefs: Unable to find rename pref for /core/plugins
(12:43:08) prefs: Renaming /core to /purple
(12:43:08) prefs: removing pref /core/plugins/core-plugin_pack-google/domain
(12:43:08) prefs: removing pref /core/plugins/core-plugin_pack-google
(12:43:08) prefs: removing pref /core/plugins
(12:43:08) prefs: removing pref /core
(12:43:08) prefs: purple_prefs_get_path: Unknown pref /pidgin/browsers/command
(12:43:08) dbus: okkk
(12:43:08) plugins: probing /home/user/.purple/plugins/libwechat.so
(12:43:08) plugins: probing /usr/lib/pidgin/iconaway.so
(12:43:08) plugins: probing /usr/lib/pidgin/nicksaid.so
(12:43:08) plugins: probing /usr/lib/pidgin/gtkbuddynote.so
(12:43:08) plugins: probing /usr/lib/pidgin/libpidgin_pp.so
(12:43:08) plugins: probing /usr/lib/pidgin/convcolors.so
(12:43:08) plugins: probing /usr/lib/pidgin/blistops.so
(12:43:08) plugins: probing /usr/lib/pidgin/spellchk.so
(12:43:08) plugins: probing /usr/lib/pidgin/lastseen.so
(12:43:08) plugins: probing /usr/lib/pidgin/xmppdisco.so
(12:43:08) plugins: probing /usr/lib/pidgin/xchat-chats.so
(12:43:08) plugins: probing /usr/lib/pidgin/mystatusbox.so
(12:43:08) plugins: probing /usr/lib/pidgin/pidginrc.so
(12:43:08) plugins: probing /usr/lib/pidgin/extplacement.so
(12:43:08) plugins: probing /usr/lib/pidgin/cap.so
(12:43:08) plugins: probing /usr/lib/pidgin/gestures.so
(12:43:08) plugins: probing /usr/lib/pidgin/encrypt.so
(12:43:08) plugins: probing /usr/lib/pidgin/enhancedhist.so
(12:43:08) plugins: probing /usr/lib/pidgin/musicmessaging.so
(12:43:08) plugins: probing /usr/lib/pidgin/convbadger.so
(12:43:08) plugins: probing /usr/lib/pidgin/themeedit.so
(12:43:08) plugins: probing /usr/lib/pidgin/listlog.so
(12:43:08) plugins: probing /usr/lib/pidgin/plonkers.so
(12:43:08) plugins: probing /usr/lib/pidgin/pidgin-twitter.so
(12:43:08) plugins: probing /usr/lib/pidgin/icon_override.so
(12:43:09) plugins: probing /usr/lib/pidgin/markerline.so
(12:43:09) plugins: probing /usr/lib/pidgin/pidgin-otr.so
(12:43:09) plugins: probing /usr/lib/pidgin/timestamp_format.so
(12:43:09) plugins: probing /usr/lib/pidgin/xmppconsole.so
(12:43:09) plugins: probing /usr/lib/pidgin/gRIM.so
(12:43:09) plugins: probing /usr/lib/pidgin/sendbutton.so
(12:43:09) plugins: probing /usr/lib/pidgin/pidgin-schedule.so
(12:43:09) plugins: probing /usr/lib/pidgin/irssi.so
(12:43:09) plugins: probing /usr/lib/pidgin/sepandtab.so
(12:43:09) plugins: probing /usr/lib/pidgin/infopane.so
(12:43:09) plugins: probing /usr/lib/pidgin/switchspell.so
(12:43:09) plugins: probing /usr/lib/pidgin/timestamp.so
(12:43:09) plugins: probing /usr/lib/pidgin/vvconfig.so
(12:43:09) plugins: probing /usr/lib/pidgin/ticker.so
(12:43:09) plugins: probing /usr/lib/pidgin/album.so
(12:43:09) plugins: probing /usr/lib/pidgin/notify.so
(12:43:09) plugins: probing /usr/lib/pidgin/timelog.so
(12:43:09) plugins: probing /usr/lib/pidgin/gmchess-network.so
(12:43:09) plugins: probing /usr/lib/pidgin/history.so
(12:43:09) plugins: probing /usr/lib/pidgin/difftopic.so
(12:43:09) plugins: probing /usr/lib/purple-2/splitter.so
(12:43:09) plugins: probing /usr/lib/purple-2/libicq.so
(12:43:09) plugins: probing /usr/lib/purple-2/libgg.so
(12:43:09) plugins: probing /usr/lib/purple-2/translate.so
(12:43:09) plugins: probing /usr/lib/purple-2/perl.so
(12:43:09) plugins: probing /usr/lib/purple-2/psychic.so
(12:43:09) plugins: probing /usr/lib/purple-2/libzephyr.so
(12:43:09) plugins: probing /usr/lib/purple-2/liboscar.so
(12:43:09) plugins: /usr/lib/purple-2/liboscar.so is not usable because the 'purple_init_plugin' symbol could not be found.  Does the plugin call the PURPLE_INIT_PLUGIN() macro?
(12:43:09) plugins: probing /usr/lib/purple-2/autoaccept.so
(12:43:09) plugins: probing /usr/lib/purple-2/libjabber.so
(12:43:09) plugins: /usr/lib/purple-2/libjabber.so is not usable because the 'purple_init_plugin' symbol could not be found.  Does the plugin call the PURPLE_INIT_PLUGIN() macro?
(12:43:09) plugins: probing /usr/lib/purple-2/colorize.so
(12:43:09) plugins: probing /usr/lib/purple-2/log_reader.so
(12:43:09) plugins: probing /usr/lib/purple-2/irc-more.so
(12:43:09) plugins: probing /usr/lib/purple-2/sslinfo.so
(12:43:09) plugins: probing /usr/lib/purple-2/slashexec.so
(12:43:09) plugins: probing /usr/lib/purple-2/libxmpp.so
(12:43:09) plugins: probing /usr/lib/purple-2/libirc.so
(12:43:09) plugins: probing /usr/lib/purple-2/joinpart.so
(12:43:09) plugins: probing /usr/lib/purple-2/libsnpp.so
(12:43:09) plugins: probing /usr/lib/purple-2/xmppprio.so
(12:43:09) plugins: probing /usr/lib/purple-2/buddynote.so
(12:43:09) plugins: probing /usr/lib/purple-2/flip.so
(12:43:09) plugins: probing /usr/lib/purple-2/oldlogger.so
(12:43:09) plugins: probing /usr/lib/purple-2/nss-prefs.so
(12:43:09) plugins: probing /usr/lib/purple-2/libnovell.so
(12:43:09) plugins: probing /usr/lib/purple-2/libskype_dbus.so
(12:43:09) plugins: probing /usr/lib/purple-2/libaim.so
(12:43:09) plugins: probing /usr/lib/purple-2/autoreply.so
(12:43:09) plugins: probing /usr/lib/purple-2/offlinemsg.so
(12:43:09) plugins: probing /usr/lib/purple-2/eight_ball.so
(12:43:09) plugins: probing /usr/lib/purple-2/listhandler.so
(12:43:09) plugins: probing /usr/lib/purple-2/autoprofile.so
(12:43:09) autoprofile: general: Initializing AutoProfile
(12:43:09) autoprofile: general: Initializing preference defaults if necessary
(12:43:09) plugins: probing /usr/lib/purple-2/ssl.so
(12:43:09) plugins: probing /usr/lib/purple-2/libsimple.so
(12:43:09) plugins: probing /usr/lib/purple-2/ssl-nss.so
(12:43:09) plugins: probing /usr/lib/purple-2/dice.so
(12:43:09) plugins: probing /usr/lib/purple-2/idle.so
(12:43:09) plugins: probing /usr/lib/purple-2/statenotify.so
(12:43:09) plugins: probing /usr/lib/purple-2/bash.so
(12:43:09) plugins: probing /usr/lib/purple-2/simfix.so
(12:43:09) plugins: probing /usr/lib/purple-2/libskype.so
(12:43:09) plugins: probing /usr/lib/purple-2/dbus-example.so
(12:43:09) plugins: probing /usr/lib/purple-2/google.so
(12:43:09) plugins: probing /usr/lib/purple-2/gnome-keyring.so
(12:43:09) plugins: probing /usr/lib/purple-2/libbonjour.so
(12:43:09) plugins: probing /usr/lib/purple-2/newline.so
(12:43:09) plugins: probing /usr/lib/purple-2/dewysiwygification.so
(12:43:09) plugins: probing /usr/lib/purple-2/highlight.so
(12:43:09) plugins: probing /usr/lib/purple-2/tcl.so
(12:43:09) plugins: probing /usr/lib/purple-2/capsnot.so
(12:43:09) plugins: probing /usr/lib/purple-2/ignore.so
(12:43:09) plugins: probing /usr/lib/purple-2/libsametime.so
(12:43:09) plugins: /usr/lib/purple-2/libsametime.so has a prefs_info, but is a prpl. This is no longer supported.
(12:43:09) plugins: probing /usr/lib/purple-2/irchelper.so
(12:43:09) plugins: probing /usr/lib/purple-2/napster.so
(12:43:09) plugins: probing /usr/lib/purple-2/groupmsg.so
(12:43:09) gg: Loading Gadu-Gadu protocol plugin with libgadu 1.12.2...
(12:43:09) plugins: probing /usr/lib/purple-2/XEP-0027.pl
gpg-agent: une instance de gpg-agent fonctionne déjà —
pas de démarrage d'une nouvelle instance
(12:43:09) util: Reading file xmpp-caps.xml from directory /home/user/.purple
(12:43:09) util: File /home/user/.purple/xmpp-caps.xml does not exist (this is not necessarily an error)
(12:43:09) jabber: creating hash tables for data objects
(12:43:09) prefs: /purple/status/scores/offline changed, scheduling save.
(12:43:09) prefs: /purple/status/scores/available changed, scheduling save.
(12:43:09) prefs: /purple/status/scores/invisible changed, scheduling save.
(12:43:09) prefs: /purple/status/scores/away changed, scheduling save.
(12:43:09) prefs: /purple/status/scores/extended_away changed, scheduling save.
(12:43:09) prefs: /purple/status/scores/idle changed, scheduling save.
(12:43:09) prefs: /purple/status/scores/offline_msg changed, scheduling save.
(12:43:09) util: Reading file accounts.xml from directory /home/user/.purple
(12:43:09) util: Reading file status.xml from directory /home/user/.purple
(12:43:09) certificate: CertificateVerifier x509, singleuse requested but not found.
(12:43:09) certificate: CertificateVerifier singleuse registered
(12:43:09) certificate: CertificatePool x509, ca requested but not found.
(12:43:09) certificate: CertificateScheme x509 requested but not found.
(12:43:09) certificate/x509/ca: Lazy init failed because an X.509 Scheme is not yet registered. Maybe it will be better later.
(12:43:09) certificate/x509/ca: Init failed, probably because a dependency is not yet registered. It has been deferred to later.
(12:43:09) certificate: CertificatePool ca registered
(12:43:09) certificate: CertificatePool x509, tls_peers requested but not found.
(12:43:09) certificate: CertificatePool tls_peers registered
(12:43:09) certificate: CertificateVerifier x509, tls_cached requested but not found.
(12:43:09) certificate: CertificateVerifier tls_cached registered
(12:43:09) prefs: /purple/logging/format changed, scheduling save.
(12:43:09) prefs: /purple/logging/format changed, scheduling save.
(12:43:09) prefs: /purple/proxy/type changed, scheduling save.
(12:43:09) prefs: /purple/proxy/host changed, scheduling save.
(12:43:09) prefs: /purple/proxy/port changed, scheduling save.
(12:43:09) prefs: /purple/proxy/username changed, scheduling save.
(12:43:09) prefs: /purple/proxy/password changed, scheduling save.
(12:43:09) nss: Cipher - TLS_AES_128_GCM_SHA256: Disabled
(12:43:09) nss: Cipher - TLS_CHACHA20_POLY1305_SHA256: Disabled
(12:43:09) nss: Cipher - TLS_AES_256_GCM_SHA384: Disabled
(12:43:09) nss: Cipher - TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256: Enabled
(12:43:09) nss: Cipher - TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256: Enabled
(12:43:09) nss: Cipher - TLS_ECDHE_ECDSA_WITH_CHACHA20_POLY1305_SHA256: Disabled
(12:43:09) nss: Cipher - TLS_ECDHE_RSA_WITH_CHACHA20_POLY1305_SHA256: Disabled
(12:43:09) nss: Cipher - TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384: Disabled
(12:43:09) nss: Cipher - TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384: Disabled
(12:43:09) nss: Cipher - TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA: Enabled
(12:43:09) nss: Cipher - TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA: Enabled
(12:43:09) nss: Cipher - TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA: Enabled
(12:43:09) nss: Cipher - TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA256: Disabled
(12:43:09) nss: Cipher - TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256: Enabled
(12:43:09) nss: Cipher - TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA: Enabled
(12:43:09) nss: Cipher - TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA384: Disabled
(12:43:09) nss: Cipher - TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384: Disabled
(12:43:09) nss: Cipher - TLS_ECDHE_ECDSA_WITH_3DES_EDE_CBC_SHA: Disabled
(12:43:09) nss: Cipher - TLS_ECDHE_RSA_WITH_3DES_EDE_CBC_SHA: Disabled
(12:43:09) nss: Cipher - TLS_ECDHE_ECDSA_WITH_RC4_128_SHA: Enabled
(12:43:09) nss: Cipher - TLS_ECDHE_RSA_WITH_RC4_128_SHA: Enabled
(12:43:09) nss: Cipher - TLS_DHE_RSA_WITH_AES_128_GCM_SHA256: Enabled
(12:43:09) nss: Cipher - TLS_DHE_RSA_WITH_CHACHA20_POLY1305_SHA256: Disabled
(12:43:09) nss: Cipher - TLS_DHE_DSS_WITH_AES_128_GCM_SHA256: Disabled
(12:43:09) nss: Cipher - TLS_DHE_RSA_WITH_AES_256_GCM_SHA384: Disabled
(12:43:09) nss: Cipher - TLS_DHE_DSS_WITH_AES_256_GCM_SHA384: Disabled
(12:43:09) nss: Cipher - TLS_DHE_RSA_WITH_AES_128_CBC_SHA: Enabled
(12:43:09) nss: Cipher - TLS_DHE_DSS_WITH_AES_128_CBC_SHA: Enabled
(12:43:09) nss: Cipher - TLS_DHE_RSA_WITH_AES_128_CBC_SHA256: Enabled
(12:43:09) nss: Cipher - TLS_DHE_DSS_WITH_AES_128_CBC_SHA256: Disabled
(12:43:09) nss: Cipher - TLS_DHE_RSA_WITH_CAMELLIA_128_CBC_SHA: Disabled
(12:43:09) nss: Cipher - TLS_DHE_DSS_WITH_CAMELLIA_128_CBC_SHA: Disabled
(12:43:09) nss: Cipher - TLS_DHE_RSA_WITH_AES_256_CBC_SHA: Enabled
(12:43:09) nss: Cipher - TLS_DHE_DSS_WITH_AES_256_CBC_SHA: Disabled
(12:43:09) nss: Cipher - TLS_DHE_RSA_WITH_AES_256_CBC_SHA256: Enabled
(12:43:09) nss: Cipher - TLS_DHE_DSS_WITH_AES_256_CBC_SHA256: Disabled
(12:43:09) nss: Cipher - TLS_DHE_RSA_WITH_CAMELLIA_256_CBC_SHA: Disabled
(12:43:09) nss: Cipher - TLS_DHE_DSS_WITH_CAMELLIA_256_CBC_SHA: Disabled
(12:43:09) nss: Cipher - TLS_DHE_RSA_WITH_3DES_EDE_CBC_SHA: Disabled
(12:43:09) nss: Cipher - TLS_DHE_DSS_WITH_3DES_EDE_CBC_SHA: Disabled
(12:43:09) nss: Cipher - TLS_DHE_DSS_WITH_RC4_128_SHA: Disabled
(12:43:09) nss: Cipher - TLS_ECDH_ECDSA_WITH_AES_128_CBC_SHA: Disabled
(12:43:09) nss: Cipher - TLS_ECDH_RSA_WITH_AES_128_CBC_SHA: Disabled
(12:43:09) nss: Cipher - TLS_ECDH_ECDSA_WITH_AES_256_CBC_SHA: Disabled
(12:43:09) nss: Cipher - TLS_ECDH_RSA_WITH_AES_256_CBC_SHA: Disabled
(12:43:09) nss: Cipher - TLS_ECDH_ECDSA_WITH_3DES_EDE_CBC_SHA: Disabled
(12:43:09) nss: Cipher - TLS_ECDH_RSA_WITH_3DES_EDE_CBC_SHA: Disabled
(12:43:09) nss: Cipher - TLS_ECDH_ECDSA_WITH_RC4_128_SHA: Disabled
(12:43:09) nss: Cipher - TLS_ECDH_RSA_WITH_RC4_128_SHA: Disabled
(12:43:09) nss: Cipher - TLS_RSA_WITH_AES_128_GCM_SHA256: Disabled
(12:43:09) nss: Cipher - TLS_RSA_WITH_AES_256_GCM_SHA384: Disabled
(12:43:09) nss: Cipher - TLS_RSA_WITH_AES_128_CBC_SHA: Enabled
(12:43:09) nss: Cipher - TLS_RSA_WITH_AES_128_CBC_SHA256: Disabled
(12:43:09) nss: Cipher - TLS_RSA_WITH_CAMELLIA_128_CBC_SHA: Disabled
(12:43:09) nss: Cipher - TLS_RSA_WITH_AES_256_CBC_SHA: Enabled
(12:43:09) nss: Cipher - TLS_RSA_WITH_AES_256_CBC_SHA256: Disabled
(12:43:09) nss: Cipher - TLS_RSA_WITH_CAMELLIA_256_CBC_SHA: Disabled
(12:43:09) nss: Cipher - TLS_RSA_WITH_SEED_CBC_SHA: Disabled
(12:43:09) nss: Cipher - TLS_RSA_WITH_3DES_EDE_CBC_SHA: Disabled
(12:43:09) nss: Cipher - TLS_RSA_WITH_RC4_128_SHA: Disabled
(12:43:09) nss: Cipher - TLS_RSA_WITH_RC4_128_MD5: Disabled
(12:43:09) nss: Cipher - TLS_DHE_RSA_WITH_DES_CBC_SHA: Disabled
(12:43:09) nss: Cipher - TLS_DHE_DSS_WITH_DES_CBC_SHA: Disabled
(12:43:09) nss: Cipher - TLS_RSA_WITH_DES_CBC_SHA: Disabled
(12:43:09) nss: Cipher - TLS_ECDHE_ECDSA_WITH_NULL_SHA: Disabled
(12:43:09) nss: Cipher - TLS_ECDHE_RSA_WITH_NULL_SHA: Disabled
(12:43:09) nss: Cipher - TLS_ECDH_RSA_WITH_NULL_SHA: Disabled
(12:43:09) nss: Cipher - TLS_ECDH_ECDSA_WITH_NULL_SHA: Disabled
(12:43:09) nss: Cipher - TLS_RSA_WITH_NULL_SHA: Disabled
(12:43:09) nss: Cipher - TLS_RSA_WITH_NULL_SHA256: Disabled
(12:43:09) nss: Cipher - TLS_RSA_WITH_NULL_MD5: Disabled
(12:43:09) nss: TLS supported versions: 0x0301 through 0x0304
(12:43:09) nss: TLS versions allowed by default: 0x0301 through 0x0303
(12:43:09) nss: Changed allowed TLS versions to 0x0301 through 0x0304
(12:43:09) certificate: CertificateScheme x509 requested but not found.
(12:43:09) certificate: CertificateScheme x509 registered
(12:43:09) util: Reading file smileys.xml from directory /home/user/.purple
(12:43:09) util: File /home/user/.purple/smileys.xml does not exist (this is not necessarily an error)
(12:43:09) stun: using server 
(12:43:09) sound: Initializing sound output drivers.
(12:43:09) prefs: /pidgin/conversations/placement changed, scheduling save.
(12:43:09) prefs: purple_prefs_get_bool: Unknown pref /pidgin/docklet/x11/embedded
(12:43:09) GLib-GObject: ../../../../gobject/gsignal.c:2523: signal 'destroy' is invalid for instance '0x563cac6df6e0' of type 'GtkStatusIcon'
(12:43:09) gtkblist: added visibility manager: 1
(12:43:09) docklet: GTK+ created
(12:43:09) gtkmedia: Registering media element types
(12:43:09) util: Reading file blist.xml from directory /home/user/.purple
(12:43:09) plugins: Loading saved plugin /usr/lib/purple-2/flip.so
(12:43:09) plugins: Loading saved plugin /usr/lib/pidgin/cap.so
(12:43:09) cap: Database connection successfully made.
(12:43:09) cap: Adding plugin functionality.
(12:43:09) plugins: Loading saved plugin /usr/lib/purple-2/dice.so
(12:43:09) plugins: Loading saved plugin /usr/lib/pidgin/lastseen.so
(12:43:09) plugins: Loading saved plugin /usr/lib/pidgin/pidgin-otr.so
(12:43:09) plugins: Loading saved plugin /usr/lib/purple-2/ssl-nss.so
(12:43:09) plugins: Loading saved plugin /usr/lib/purple-2/XEP-0027.pl
(12:43:09) perl: Loading perl script
gpg-agent: une instance de gpg-agent fonctionne déjà —
pas de démarrage d'une nouvelle instance
(12:43:09) openpgpplugin: plugin_load() - OpenPGP Plugin Loaded.
(12:43:09) plugins: Loading saved plugin /usr/lib/purple-2/gnome-keyring.so
(12:43:09) plugins: Loading saved plugin /usr/lib/pidgin/pidginrc.so
(12:43:09) plugins: Loading saved plugin /usr/lib/pidgin/encrypt.so
(12:43:09) pidgin-encryption: Compiled with Purple '2.10.11', running with Purple '2.12.0'.
(12:43:09) pidgin-encryption: Checking for old prefs file (/home/user/.purple/encrypt.prefs)...
(12:43:09) pidgin-encryption: plugin_load called
(12:43:09) pidgin-encryption: Adding stock from /usr/share/pixmaps/pidgin-encryption/icon_out_lock.png
(12:43:09) pidgin-encryption: iconset = 0x563cac5ebd20
(12:43:09) pidgin-encryption: Adding stock from /usr/share/pixmaps/pidgin-encryption/icon_out_unlock.png
(12:43:09) pidgin-encryption: iconset = 0x563cac5ebcc0
(12:43:09) pidgin-encryption: Adding stock from /usr/share/pixmaps/pidgin-encryption/icon_out_capable.png
(12:43:09) pidgin-encryption: iconset = 0x563cac5ec1b0
(12:43:09) pidgin-encryption: Adding stock from /usr/share/pixmaps/pidgin-encryption/icon_in_lock.png
(12:43:09) pidgin-encryption: iconset = 0x563cac5ec150
(12:43:09) pidgin-encryption: Adding stock from /usr/share/pixmaps/pidgin-encryption/icon_in_unlock.png
(12:43:09) pidgin-encryption: iconset = 0x563cac5ec0f0
(12:43:09) plugins: Loading saved plugin /usr/lib/pidgin/pidgin-twitter.so
(12:43:09) plugins: Loading saved plugin /usr/lib/pidgin/libpidgin_pp.so
(12:43:09) plugins: Loading saved plugin /usr/lib/purple-2/psychic.so
(12:43:09) plugins: Loading saved plugin /usr/lib/purple-2/ssl.so
(12:43:09) plugins: Loading saved plugin /usr/lib/purple-2/sslinfo.so
(12:43:09) plugins: Loading saved plugin /usr/lib/pidgin/vvconfig.so
(12:43:09) gtkmedia: Registering media element types
(12:43:09) plugins: Loading saved plugin /usr/lib/pidgin/xmppdisco.so
(12:43:09) plugins: Loading saved plugin /usr/lib/purple-2/bash.so
(12:43:09) pounce: Error reading pounces: L’ouverture du fichier « /home/user/.purple/pounces.xml » a échoué : Aucun fichier ou dossier de ce type
(12:43:09) gtkthemes: /usr/share/pixmaps/pidgin/emotes/inbob/theme:13 is invalid UTF-8
(12:43:09) gtkthemes: /usr/share/pixmaps/pidgin/emotes/inbob/theme:30 is invalid UTF-8
(12:43:10) Session Management: ICE initialized.
(12:43:10) Session Management: Connecting with no previous ID
(12:43:10) Session Management: Handling new ICE connection... 
(12:43:10) done.
(12:43:10) Session Management: Connected to manager (gnome-session) with client ID 1061a3df2150d21eb4151809019011903300000031700095
(12:43:10) Session Management: Using pidgin as command
(12:43:10) GLib-GObject: value "-1413395319" of type 'gint' is invalid or out of range for property 'weight' of type 'gint'
(12:43:10) connection: Connecting. gc = 0x563cad6bafe0
(12:43:10) dnsquery: Performing DNS lookup for 127.0.0.1
(12:43:10) Session Management: Received first save_yourself
(12:43:10) dnsquery: IP resolved for 127.0.0.1
(12:43:10) proxy: Attempting connection to 127.0.0.1
(12:43:10) proxy: Connecting to plop:5222 via 127.0.0.1:9050 using SOCKS5
(12:43:10) socks5 proxy: Connection in progress
(12:43:10) Session Management: Received save_complete
(12:43:10) socks5 proxy: Connected.
(12:43:10) socks5 proxy: Able to read.
(12:43:10) socks5 proxy: Got auth response.
(12:43:10) prefs: /pidgin/blist/list_maximized changed, scheduling save.
(12:43:10) prefs: /pidgin/blist/list_maximized changed, scheduling save.
(12:43:10) s5: reallocing from 5 to 8
(12:43:10) s5: reallocing from 8 to 10
(12:43:10) proxy: Connected to plop:5222.

  • coredump file or debugger's stack trace:
    I decided to give a try to compilation, here is the output:
[~/script/pidgin-wechat] - [2018-02-08 12:21:01]
└─[0] <git:(master dc3adda) > cargo build
    Updating registry `https://github.com/rust-lang/crates.io-index`
    Updating git repository `https://github.com/seanmonstar/reqwest`            
 Downloading lazy_static v0.2.8                                                 
 Downloading glib-sys v0.4.0                                                    
 Downloading serde_json v1.0.3                                                  
 Downloading hyper v0.11.2                                                      
 Downloading time v0.1.38                                                       
 Downloading libc v0.2.31                                                       
 Downloading regex v0.2.2                                                       
 Downloading rust-crypto v0.2.36                                                
 Downloading purple-sys v0.1.0                                                  
 Downloading bitflags v0.9.1                                                    
 Downloading pkg-config v0.3.9                                                  
 Downloading num-traits v0.1.40                                                 
 Downloading itoa v0.3.4                                                        
 Downloading serde v1.0.15                                                      
 Downloading dtoa v0.4.2                                                        
 Downloading bytes v0.4.5                                                       
 Downloading native-tls v0.1.4                                                  
 Downloading tokio-core v0.1.9                                                  
 Downloading tokio-io v0.1.3                                                    
 Downloading url v1.5.1                                                         
 Downloading mime_guess v2.0.0-alpha.2                                          
 Downloading libflate v0.1.11                                                   
 Downloading uuid v0.5.1                                                        
 Downloading serde_urlencoded v0.5.1                                            
 Downloading log v0.3.8                                                         
 Downloading futures v0.1.16                                                    
 Downloading tokio-tls v0.1.3                                                   
 Downloading hyper-tls v0.1.2                                                   
 Downloading byteorder v1.1.0                                                   
 Downloading iovec v0.1.0                                                       
 Downloading scoped-tls v0.1.0                                                  
 Downloading mio v0.6.10                                                        
 Downloading slab v0.3.0                                                        
 Downloading net2 v0.2.31                                                       
 Downloading lazycell v0.5.1                                                    
 Downloading cfg-if v0.1.2                                                      
 Downloading percent-encoding v1.0.0                                            
 Downloading matches v0.1.6                                                     
 Downloading idna v0.1.4                                                        
 Downloading unicode-bidi v0.3.4                                                
 Downloading unicode-normalization v0.1.5                                       
 Downloading mime v0.3.4                                                        
 Downloading phf v0.7.21                                                        
 Downloading unicase v1.4.2                                                     
 Downloading unicase v2.0.0                                                     
 Downloading rustc_version v0.1.7                                               
 Downloading semver v0.1.20                                                     
 Downloading phf_shared v0.7.21                                                 
 Downloading siphasher v0.2.2                                                   
 Downloading version_check v0.1.3                                               
 Downloading phf_codegen v0.7.21                                                
 Downloading phf_generator v0.7.21                                              
 Downloading rand v0.3.16                                                       
 Downloading adler32 v1.0.2                                                     
 Downloading tokio-service v0.1.0                                               
 Downloading futures-cpupool v0.1.6                                             
 Downloading tokio-proto v0.1.1                                                 
 Downloading httparse v1.2.3                                                    
 Downloading language-tags v0.2.2                                               
 Downloading base64 v0.6.0                                                      
 Downloading num_cpus v1.6.2                                                    
 Downloading take v0.1.0                                                        
 Downloading smallvec v0.2.1                                                    
 Downloading safemem v0.2.0                                                     
 Downloading regex-syntax v0.4.1                                                
 Downloading aho-corasick v0.6.3                                                
 Downloading memchr v1.0.1                                                      
 Downloading utf8-ranges v1.0.0                                                 
 Downloading thread_local v0.3.4                                                
 Downloading unreachable v1.0.0                                                 
 Downloading void v1.0.2                                                        
 Downloading rustc-serialize v0.3.24                                            
 Downloading gcc v0.3.54                                                        
 Downloading bindgen v0.29.0                                                    
 Downloading clang-sys v0.19.0                                                  
 Downloading aster v0.41.0                                                      
 Downloading cexpr v0.2.2                                                       
 Downloading quasi v0.32.0                                                      
 Downloading clap v2.26.2                                                       
 Downloading peeking_take_while v0.1.2                                          
 Downloading env_logger v0.4.3                                                  
 Downloading syntex_syntax v0.58.1                                              
 Downloading libloading v0.4.2                                                  
 Downloading glob v0.2.11                                                       
 Downloading bitflags v0.8.2                                                    
 Downloading syntex_errors v0.58.1                                              
 Downloading syntex_pos v0.58.1                                                 
 Downloading unicode-xid v0.0.4                                                 
 Downloading term v0.4.6                                                        
 Downloading nom v3.2.0                                                         
 Downloading strsim v0.6.0                                                      
 Downloading term_size v0.3.0                                                   
 Downloading vec_map v0.8.0                                                     
 Downloading atty v0.2.2                                                        
 Downloading textwrap v0.8.0                                                    
 Downloading ansi_term v0.9.0                                                   
 Downloading unicode-width v0.1.4                                               
 Downloading quasi_codegen v0.32.0                                              
 Downloading syntex v0.58.1                                                     
 Downloading openssl v0.9.19                                                    
 Downloading openssl-sys v0.9.19                                                
 Downloading foreign-types v0.2.0                                               
 Downloading cc v1.0.0                                                          
   Compiling peeking_take_while v0.1.2                                          
   Compiling term v0.4.6
   Compiling cfg-if v0.1.2
   Compiling gcc v0.3.54
   Compiling vec_map v0.8.0
   Compiling foreign-types v0.2.0
   Compiling version_check v0.1.3
   Compiling adler32 v1.0.2
   Compiling unicode-xid v0.0.4
   Compiling lazy_static v0.2.8
   Compiling byteorder v1.1.0
   Compiling utf8-ranges v1.0.0
   Compiling ansi_term v0.9.0
   Compiling slab v0.3.0
   Compiling scoped-tls v0.1.0
   Compiling itoa v0.3.4
   Compiling safemem v0.2.0
   Compiling log v0.3.8
   Compiling cc v1.0.0
   Compiling libc v0.2.31
   Compiling matches v0.1.6
   Compiling lazycell v0.5.1
   Compiling bitflags v0.9.1
   Compiling glob v0.2.11
   Compiling unicode-normalization v0.1.5
   Compiling smallvec v0.2.1
   Compiling semver v0.1.20
   Compiling void v1.0.2
   Compiling dtoa v0.4.2
   Compiling strsim v0.6.0
   Compiling pkg-config v0.3.9
   Compiling rustc-serialize v0.3.24
   Compiling language-tags v0.2.2
   Compiling futures v0.1.16
   Compiling openssl v0.9.19
   Compiling httparse v1.2.3
   Compiling percent-encoding v1.0.0
   Compiling bitflags v0.8.2
   Compiling unicode-width v0.1.4
   Compiling take v0.1.0
   Compiling num-traits v0.1.40
   Compiling regex-syntax v0.4.1
   Compiling serde v1.0.15
   Compiling siphasher v0.2.2
   Compiling libloading v0.4.2
   Compiling unicase v1.4.2
   Compiling rust-crypto v0.2.36
   Compiling libflate v0.1.11
   Compiling base64 v0.6.0
   Compiling unicode-bidi v0.3.4
   Compiling net2 v0.2.31
   Compiling iovec v0.1.0
   Compiling atty v0.2.2
   Compiling time v0.1.38
   Compiling rand v0.3.16
   Compiling term_size v0.3.0
   Compiling memchr v1.0.1
   Compiling num_cpus v1.6.2
   Compiling clang-sys v0.19.0
   Compiling unreachable v1.0.0
   Compiling glib-sys v0.4.0
   Compiling openssl-sys v0.9.19
   Compiling rustc_version v0.1.7
   Compiling tokio-service v0.1.0
   Compiling syntex_pos v0.58.1
   Compiling idna v0.1.4
   Compiling bytes v0.4.5
   Compiling mio v0.6.10
   Compiling textwrap v0.8.0
   Compiling nom v3.2.0
   Compiling aho-corasick v0.6.3
   Compiling futures-cpupool v0.1.6
   Compiling thread_local v0.3.4
   Compiling uuid v0.5.1
   Compiling unicase v2.0.0
   Compiling serde_json v1.0.3
   Compiling syntex_errors v0.58.1
   Compiling tokio-io v0.1.3
   Compiling clap v2.26.2
   Compiling url v1.5.1
   Compiling regex v0.2.2
   Compiling cexpr v0.2.2
   Compiling phf_shared v0.7.21
   Compiling tokio-core v0.1.9
   Compiling syntex_syntax v0.58.1
   Compiling serde_urlencoded v0.5.1
   Compiling phf v0.7.21
   Compiling phf_generator v0.7.21
   Compiling env_logger v0.4.3
   Compiling tokio-proto v0.1.1
   Compiling mime v0.3.4
   Compiling phf_codegen v0.7.21
   Compiling hyper v0.11.2
   Compiling mime_guess v2.0.0-alpha.2
   Compiling native-tls v0.1.4
   Compiling tokio-tls v0.1.3
   Compiling hyper-tls v0.1.2
   Compiling reqwest v0.7.3 (https://github.com/seanmonstar/reqwest#a646bb56)
   Compiling quasi v0.32.0
   Compiling aster v0.41.0
   Compiling syntex v0.58.1
   Compiling quasi_codegen v0.32.0
   Compiling bindgen v0.29.0
   Compiling purple-sys v0.1.0
   Compiling pidgin-wechat v0.1.0 (file:///home/user/script/pidgin-wechat)
warning: unused import: `self::crypto::md5::Md5`
  --> src/server.rs:14:5
   |
14 | use self::crypto::md5::Md5;
   |     ^^^^^^^^^^^^^^^^^^^^^^
   |
   = note: #[warn(unused_imports)] on by default

warning: unused import: `self::time::Duration`
  --> src/server.rs:16:5
   |
16 | use self::time::Duration;
   |     ^^^^^^^^^^^^^^^^^^^^

warning: unused import: `c_uchar`
  --> src/server.rs:31:36
   |
31 | use std::os::raw::{c_void, c_char, c_uchar, c_int};
   |                                    ^^^^^^^

warning: unused import: `self::crypto::digest::Digest`
  --> src/server.rs:15:5
   |
15 | use self::crypto::digest::Digest;
   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^

warning: method is never used: `data_ticket`
   --> src/server.rs:155:5
    |
155 |     fn data_ticket(&self) -> Option<&str> {
    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
    |
    = note: #[warn(dead_code)] on by default

warning: method is never used: `image_upload_data`
   --> src/server.rs:322:5
    |
322 |     fn image_upload_data(&self, img_size: usize, img_md5: &str, dest_name: &str) -> Value {
    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

warning: variable does not need to be mutable
   --> src/server.rs:600:9
    |
600 |     let mut client = Client::new();
    |         ---^^^^^^^
    |         |
    |         help: remove this `mut`
    |
    = note: #[warn(unused_mut)] on by default

    Finished dev [unoptimized + debuginfo] target(s) in 365.69 secs

收取消息崩溃

版本:
90a4ae3

收取链接的时候崩溃的。已上传shell信息和coredump:
pidgin.zip

shell output:
{"AddMsgCount":1,"AddMsgList":[{"AppInfo":{"AppID":"","Type":0},"AppMsgType":0,"Content":"https://www.tensorflow.org/tutorials/","CreateTime":1494748763,"FileName":"","FileSize":"","ForwardFlag":0,"FromUserName":"@5e884122ab556215f061fd52a9399b4f","HasProductId":0,"ImgHeight":0,"ImgStatus":1,"ImgWidth":0,"MediaId":"","MsgId":"2352766951486417683","MsgType":1,"NewMsgId":2352766951486417683,"OriContent":"","PlayLength":0,"RecommendInfo":{"Alias":"","AttrStatus":0,"City":"","Content":"","NickName":"","OpCode":0,"Province":"","QQNum":0,"Scene":0,"Sex":0,"Signature":"","Ticket":"","UserName":"","VerifyFlag":0},"Status":3,"StatusNotifyCode":0,"StatusNotifyUserName":"","SubMsgType":0,"Ticket":"","ToUserName":"@@368a4bb9338b101d6b66c9e58aeba5e6754f90dd64a3e1bd870a637c24d94f2b","Url":"","VoiceLength":0}],"BaseResponse":{"ErrMsg":"","Ret":0},"ContinueFlag":0,"DelContactCount":0,"DelContactList":[],"ModChatRoomMemberCount":0,"ModChatRoomMemberList":[],"ModContactCount":0,"ModContactList":[],"Profile":{"Alias":"","BindEmail":{"Buff":""},"BindMobile":{"Buff":""},"BindUin":0,"BitFlag":0,"HeadImgUpdateFlag":0,"HeadImgUrl":"","NickName":{"Buff":""},"PersonalCard":0,"Sex":0,"Signature":"","Status":0,"UserName":{"Buff":""}},"SKey":"","SyncCheckKey":{"Count":10,"List":[{"Key":1,"Val":637490453},{"Key":2,"Val":637490530},{"Key":3,"Val":637490454},{"Key":11,"Val":637490465},{"Key":13,"Val":637470341},{"Key":201,"Val":1494748763},{"Key":203,"Val":1494733869},{"Key":1000,"Val":1494734761},{"Key":1001,"Val":1494734791},{"Key":1004,"Val":1494344568}]},"SyncKey":{"Count":10,"List":[{"Key":1,"Val":637490453},{"Key":2,"Val":637490530},{"Key":3,"Val":637490454},{"Key":11,"Val":637490465},{"Key":13,"Val":637470341},{"Key":201,"Val":1494748763},{"Key":203,"Val":1494733869},{"Key":1000,"Val":1494734761},{"Key":1001,"Val":1494734791},{"Key":1004,"Val":1494344568}]}}
purple_find_chat for token 0, result = 0x0
join chat "@@368a4bb9338b101d6b66c9e58aeba5e6754f90dd64a3e1bd870a637c24d94f2b", token = 0
thread '' panicked at 'called Option::unwrap() on a None value', src/libcore/option.rs:323
note: Run with RUST_BACKTRACE=1 for a backtrace.
fatal runtime error: failed to initiate panic, error 5

发送图片失败

src/server.rs 里面的 upload_picture 函数
上传图片的时候失败,估计是上传的 POST 有地方写错了,看了半天也没找出原因,应该是一些字段漏掉了或者哪里 typo 了

GPL Compliance

You are currently linking against libraries that link against GPL-incompatible code (namely, OpenSSL). Unfortunately this is against the terms of the GPL licence that Pidgin and libpurple is licensed under, as Pidgin/libpurple does not have a license exception for OpenSSL.

You will need to change the libraries you are using in order to comply with the GPL, or else cease distributing compiled copies of this plugin.

Linkedin to XMPP

Linkedin to XMPP
Hey I'm using Pidgin messaging client, I find the Linkedin native messaging difficult to manage could you help me figure out a way to convert Linkedin messages to xmpp to be managed by an open source messaging client

奇怪插件列表里显示不出来

ElementaryOS 0.4
安装了pidgin和pidgin-dev
分别把libwechat.so复制到了
~/.purple/plugins
/usr/lib/pidgin
/usr/lib/purple-2
插件管理器里都没有显示。。。不熟悉linux不知道什么情况。。谢谢。。

Ubuntu 20.04 error[E0423]

Dear team,
oday I downloaded Pidgin-wechat
Unfortunately I cannot get it to compile.Please could you provide a precompiled Wechat to test?

  • My system:
    Ubuntu 20.04

  • My pidgin version is:

  • My pidgin-wechat version is:
    Pidgin 2.13.0 (libpurple 2.13.0)

  • standard output:
    error[E0423]: expected function, tuple struct or tuple variant, found struct ast::Name
    --> /home/business/.cargo/registry/src/github.com-1ecc6299db9ec823/syntex_syntax-0.58.1/src/symbol.rs:146:27
    |
    146 | name: ast::Name($index),
    | ^^^^^^^^^
    ...
    165 | / declare_keywords! {
    166 | | // Invalid identifier
    167 | | (0, Invalid, "")
    168 | |
    ... |
    231 | | (56, CrateRoot, "{{root}}")
    232 | | }
    | |_- in this macro invocation
    |
    = note: this error originates in a macro (in Nightly builds, run with -Z macro-backtrace for more info)

error: aborting due to previous error

For more information about this error, try rustc --explain E0423.
error: could not compile syntex_syntax.

To learn more, run the command again with --verbose.
warning: build failed, waiting for other jobs to finish...
error: build failed

z中文 and English is okay.

Thank You for explaining how to fix or releasing a fix for this.

libwechat.so is not loadable: undefined symbol: X509_VERIFY_PARAM_set_hostflags

Hi,
I added your plugin to pidgin, here is the output error:

  • My system:

    Debian GNU/Linux buster/sid

  • My pidgin version is:

    Pidgin 2.12.0 (libpurple 2.12.0)

  • My pidgin-wechat version is:

    v0.1.1 Pre-release

  • standard output:

  • coredump file or debugger's stack trace:

> pidgin -d    
Gtk-Message: Failed to load module "canberra-gtk-module"
(10:52:34) prefs: Reading /home/user/.purple/prefs.xml
(10:52:34) prefs: Finished reading /home/user/.purple/prefs.xml
(10:52:34) prefs: Unable to find rename pref for /core/plugins
(10:52:34) prefs: Renaming /core to /purple
(10:52:34) prefs: removing pref /core/plugins/core-plugin_pack-google/domain
(10:52:34) prefs: removing pref /core/plugins/core-plugin_pack-google
(10:52:34) prefs: removing pref /core/plugins
(10:52:34) prefs: removing pref /core
(10:52:34) prefs: purple_prefs_get_path: Unknown pref /pidgin/browsers/command
(10:52:34) dbus: okkk
(10:52:34) plugins: probing /home/user/.purple/plugins/libwechat.so
(10:52:34) plugins: /home/user/.purple/plugins/libwechat.so is not loadable: undefined symbol: X509_VERIFY_PARAM_set_hostflags

请问这个插件怎么用啊

  • My system:

    Debian & Gnome

  • My pidgin version is:

    Pidgin 2.12.0 (libpurple 2.12.0)

  • My pidgin-wechat version is:

    0.11

  • standard output:

    none

  • coredump file or debugger's stack trace:

pidgin也正常安装打开了,libwechat.so也复制到~/.purple/plugins了,但是协议下拉列表里面怎么找不到?还是说不是在这里启动?第一次用pidgin,恕我愚昧。

Cannot login

Please ask the following questions, Thanks!

  • My system:

Arch Linux

  • My pidgin version is:

2.13.0-7

  • My pidgin-wechat version is:

0.1.1-1

  • standard output:
get: "https://login.web.wechat.com/jslogin?appid=wx782c26e4c19acffb&redirect_uri=https://web.wechat.com/cgi-bin/mmwebwx-bin/webwxnewloginpage&fun=new&lang=zh_CN"
thread '<unnamed>' panicked at 'called `Option::unwrap()` on a `None` value', src/libcore/option.rs:347:21
stack backtrace:
   0: <unknown>
   1: <unknown>
   2: <unknown>
   3: <unknown>
   4: std::panicking::rust_panic_with_hook
   5: <unknown>
   6: rust_begin_unwind
   7: core::panicking::panic_fmt
   8: core::panicking::panic
   9: <unknown>
  10: openssl::ssl::connector::SslConnectorBuilder::new
  11: native_tls::TlsConnector::builder
  12: hyper_native_tls::NativeTlsClient::new
  13: <unknown>
  14: std::sync::once::Once::call_inner
  15: <unknown>
  16: __rust_maybe_catch_panic
  17: <unknown>
  18: <unknown>
  19: <unknown>
  20: start_thread
  21: __clone

Installed directly from aur, and login window just does not appear.

doesn't load

  • My system:
    Linux Mint

  • My pidgin version is:
    Pidgin 2.10.12 (libpurple 2.10.12)

  • My pidgin-wechat version is:
    v0.1.1 Pre-release

Hello,

I downloaded the libwechat.so-v0.1.1-amd64.zip, and moved libwechat.so to /home/arnauld/.purple/plugins. Relaunched pidgin, but nothing happens...Where am I supposed to add wechat account ?

Thank you for any help.

5-11最新代码编译不通过

arch系统,在编译的时候出现如下信息后停止编译:

Compiling purple-sys v0.0.4
error: failed to run custom build command for `purple-sys v0.0.4`
process didn't exit successfully: `/home/ivan/tmp/pidgin-wechat/target/release/build/purple-sys-a13e419dc2c076f8/build-script-build` (exit code: 101)
--- stdout
cargo:rustc-link-search=native=/usr/lib
cargo:rustc-link-lib=purple
cargo:rustc-link-lib=glib-2.0
test = "/usr/include/libpurple/purple.h"
found = "/usr/include/libpurple/purple.h"
Adding include dir: /usr/include/libpurple
Adding include dir: /usr/include/glib-2.0
Adding include dir: /usr/lib/glib-2.0/include

--- stderr
thread 'main' panicked at 'Unable to find libclang: "couldn\'t find any of \'libclang.so\', set the LIBCLANG_PATH environment variable to a path where one of these files can be found"', src/libcore/result.rs:868
note: Run with `RUST_BACKTRACE=1` for a backtrace.

求解

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.