Skip to content


通用状态更新器

我把更新器分成了 http, XMPP, 其他
每个更新器都提供query(username, password) 和 update(username, password, status)方法
每个网站对应有自己的一个更新器
对外提供的是一个update.php页面 输入形如:
action=(query|update)&xml=

<?xml version="1.0" standalone="yes"?> 
<usu> 
<site> 
<sitename>renren.com</sitename> 
<username>用户名</username> 
<password>密码</password> 
<status>test12345</status> 
</site> 
<site> 
<sitename>kaixin001.com</sitename> 
<username>用户名</username> 
<password>密码</password> 
<status>test12345</status> 
</site> 
</usu>

如果action是query 返回值形如:

<?xml version="1.0" standalone="yes"?> 
<usu> 
<site> 
<sitename>renren.com</sitename> 
<result>状态 或者 login failed 或者 query failed</result> 
</site> 
<site> 
<sitename>kaixin001.com</sitename> 
<result>状态</result> 
</site> 
</usu>

如果为update 返回形如

 <?xml version="1.0" standalone="yes"?> 
<usu> 
<site> 
<sitename>renren.com</sitename> 
<result>update success或者login failed 或者update failed</result> 
</site> 
<site> 
<sitename>kaixin001.com</sitename> 
<result>update success或者login failed 或者update failed</result> 
</site> 
</usu>

测试网页地址是 http://portfolio.mrcongwang.com/statusupdater/test.php

关于开发:
添加一个新的http更新器很容易 比如 xiaonei的更新器 如下

<?php 
require_once('usu-classes.php'); 
class updater_xiaonei extends http_updater{ 
    //site attributes 
    public function updater_xiaonei(){ 
        $this->sitename = "renren.com"; 
 
        $this->update_domain = 'status.renren.com'; 
        $this->update_method = 'POST'; 
        $this->update_url = '/doing/update.do?'; 
        $this->update_referer = 'http://'.$this->update_domain.$this->query_url; 
 
        $this->query_domain = 'status.renren.com'; 
        $this->query_url = '/getdoing.do'; 
 
        $this->login_domain = 'login.renren.com'; 
        $this->login_url = '/Login.do'; 
 
        //patterns 
        $this->query_success_pattern = '/<span id="currentStatus">(.+)<\/span>/'; 
        $this->query_fail_pattern=''; 
 
        $this->login_success_pattern=''; 
        $this->login_fail_pattern='<div class="errors_div">'; 
 
        $this->update_success_pattern='/\{"updateStatusId":\d+,"code":\d,"msg":".+"\}/'; 
        $this->update_fail_pattern=''; 
 
        $this->update_post='c=[STATUS]&raw=[STATUS]'; 
        $this->query_post=''; 
        $this->login_post='email=[USERNAME]&password=[PASSWORD]&origURL=&formName=&method=&submit=%E7%99%BB%E5%BD%95';     
 
    } 
 
} 
?>

kaixin001.com的更新器如下:

<?php 
require_once('usu-classes.php'); 
class updater_kaixin001 extends http_updater{ 
    public function updater_kaixin001(){ 
        //site attributes 
        $this->sitename = "kaixin001.com"; 
 
        $this->update_domain = 'www.kaixin001.com'; 
        $this->update_method = 'POST'; 
        $this->update_url = '/friend/status_submit.php?'; 
        $this->update_post='state=[STATUS]'; 
 
 
        $this->query_domain = 'www.kaixin001.com'; 
        $this->query_url = '/home/'; 
        $this->query_post=''; 
 
 
        $this->login_domain = 'www.kaixin001.com'; 
        $this->login_url = '/login/login.php'; 
        $this->login_post='email=[USERNAME]&password=[PASSWORD]&url=/home/';     
 
        //patterns 
        $this->query_success_pattern = '/<a href="\/home\/status.php" class="c0" style="text-decoration:none;color:#000;">(.+)<\/a>/'; 
        $this->query_fail_pattern=''; 
 
        $this->login_success_pattern=''; 
        $this->login_fail_pattern='/账号或密码不太对吧!/'; 
 
        $this->update_success_pattern='/\{"state":".+"\}/'; 
        $this->update_fail_pattern=''; 
 
 
    } 
 
} 
?>

Posted in Universal Status Updater. Tagged with , .

0 Responses

Stay in touch with the conversation, subscribe to the RSS feed for comments on this post.

Some HTML is OK

(required)

(required, but never shared)

or, reply to this post via trackback.