2010-07-27 48 views
5

Tôi có một máy cũ trong nhà và một trong những thứ máy này hiện đang phát hiện xem một cánh cửa cụ thể trong ngôi nhà vừa mới mở hoặc đóng.Ví dụ tốt về sử dụng libpurple?

Hiện tại, tôi có máy đó đăng một tweet trên tài khoản Twitter riêng tư .

Tôi hiện muốn cung cấp cho máy này tài khoản AIM riêng của mình và yêu cầu gửi cho tôi một tin nhắn trên AIM. Các tin nhắn duy nhất sẽ được gửi theo nghĩa đen là "cửa trước mở" và "cửa trước đã đóng".

Dường như libpurple là một thư viện thường được sử dụng cho đối phó với các giao thức tin nhắn tức thời khác nhau và là thậm chí sử dụng trong Adium, nhưng nó là terribly phức tạp và tôi không thể tìm ra cách để sử dụng nó.

Có ai có hoặc biết một mẫu mã đơn giản mà sử dụng libpurple không?

Trả lời

3

Cá nhân tôi tìm thấy mã nguồn của Pidgin để dễ đọc. Tuy nhiên, có nhiều ứng dụng khách IM sử dụng libpurple hơn, bạn có thể kiểm tra Wikipedia để biết thêm chi tiết.

+0

libpurple được phát triển như một back-end cho Pidgin, vì vậy đó phải là nơi defacto để bắt đầu. Nhưng như bạn nói, có rất nhiều người khác sử dụng nó bây giờ là tốt. – Spudley

+0

Sau 2 năm. Bạn có nghĩ rằng câu trả lời của bạn nên được cập nhật! –

1

Tôi đã thực hiện loại điều này trong tập lệnh bash trước đây. Thật không may mã bị mất, nhưng bạn có thể muốn xem dbus như một phần của giải pháp. Mã này tương đối đơn giản.

This page on updating pidgin status có thể là điểm khởi đầu tốt.

Đối với ứng dụng của bạn, nó có thể được dễ dàng như:

purple-remote uri 'aim:goim?screenname=yourimhandle&message="front door open"' 

(Xem trích dẫn!)

Xem purple-remote(1).

1

Tôi đã chiến đấu qua rồng^Tài liệu không liên quan và có vẻ hợp lý :-) Có thời gian để hack một số nội dung cùng nhau, tôi nghĩ rằng nó có thể đáng để kiểm tra nhanh.

quan trọng và tốt để biết, rằng để sử dụng các dịch vụ dbus nội bộ,

  1. chạy này trong ví dụ màn hình trong một thời gian dài :),
  2. điều khiển từ xa màu tím sẽ được chạy trong cùng phiên dbus. Tôi đã thực hiện một tập lệnh bắt đầu phiên lúc khởi động và xuất DBUS_SESSION_BUS_ADDRESS trong bashrc của tất cả người dùng. Cảm thấy hacky?:)

Bất kỳ ai có kỹ năng tốt hơn với libpurple, hãy tạm ngưng chúng tôi! :-)

+0

Uh và Makefile: http://koshinae.pastebin.com/TPM8en2i – Koshinae

0

Bạn chắc chắn nên xem xét nullclient.c được cung cấp trong các nguồn libpurple (libpurple/example/nullclient.c). Nó thực hiện đăng nhập vào máy chủ và thêm một số callbacks hữu ích. Để gửi tin nhắn, hãy thêm thông báo này vào (ví dụ) chức năng signed_on:

PurpleConvIm im; 
im.conv = purple_conversation_new(PURPLE_CONV_TYPE_IM, account, "[email protected]"); 
purple_conv_im_send(&im, "open door"); 
Các vấn đề liên quan