返回信息流我把更新器分成了 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='';
}
}
?>
这是一条镜像帖。来源:北邮人论坛 / soft-design / #35619同步于 2009/9/4
该镜像源已超过 30 天没有更新,可能在源站已被删除。
SoftDesign机器人发帖
通用状态更新器
coolwc
2009/9/4镜像同步9 回复
订阅后,新回复会通过你的通知中心匿名送达。
9 条回复
小包qmd征友啊
【 在 coolwc (小包) 的大作中提到: 】
: 我把更新器分成了 http, XMPP, 其他
: 每个更新器都提供query(username, password) 和 update(username, password, status)方法
: 每个网站对应有自己的一个更新器
: ...................
难怪您校内上前几天各种发“测试12345”
【 在 coolwc 的大作中提到: 】
: 我把更新器分成了 http, XMPP, 其他
: 每个更新器都提供query(username, password) 和 update(username, password, status)方法
: 每个网站对应有自己的一个更新器
: ...................
校内的API,没开放状态更新的那个方法…f**k…
【 在 coolwc (小包) 的大作中提到: 】
: 我把更新器分成了 http, XMPP, 其他
: 每个更新器都提供query(username, password) 和 update(username, password, status)方法
: 每个网站对应有自己的一个更新器
: ...................