找到apistatusesupdate.php文件,找到代码行:
232 233 | $content = html_entity_decode($status_shortened, ENT_NOQUOTES, 'UTF-8'); $options = array('reply_to' => $reply_to); |
修改代码如下:
232 233 234 235 236 237 238 239 240 241 | $content = html_entity_decode($status_shortened, ENT_NOQUOTES, 'UTF-8'); //add by jianhong 20110211 if((preg_match("/^http:/",$content))||(preg_match("/http:/",$content)&&$this->source=="api")){ $this->clientError("I hate you!!! spam maker!!!"); return; } //add by jianhong 20110211 $options = array('reply_to' => $reply_to); |
当我们在使用statusnet当中的google map时,发现那个放大缩小的level条不见了。这样很不方便使用。加上它其实并不难。打开\plugins\Mapstraction\js\mxn.google.core.js文件,在原代码:
1 2 3 4 5 6 7 8 9 10 11 12 | mxn.register('google', { Mapstraction: { init: function(element,api) { var me = this; if (GMap2) { if (GBrowserIsCompatible()) { this.maps[api] = new GMap2(element); GEvent.addListener(this.maps[api], 'click', function(marker,location) { ... |
改变为:
1ba75660efbb95c7fde62afb6a77554[......]
上一次提到这个问题的时候,似乎感觉问题解决了,但是后来发现,上次的代码并不能很好的解决问题,很多中英文混杂的标题无法正确的显示。
为此,不得不再次研究一下代码,将代码做了一下精减,反而效果还是不错的。具体代码如下:
76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 | function cleanup_mail($string) { $string = str_replace(array("\r", "\n", "\r\n"), "", $string); $string = trim($string); return $string; } function utf8_encode_c($string) { $charset = 'utf-8'; $encoded_string = $string; if(strtolower($charset) == 'utf-8' && preg_match('/[\x00-\x08\x0b\x0c\x0e-\x1f\x7f-\xff]/', $string)) { // Define start delimimter, end delimiter and spacer $end = "?="; $start = "=?" . $charset . "?B?"; // Encode the string $encoded_string = base64_encode($encoded_string); $encoded_string = $start . $encoded_string . $end; } return $encoded_string; } function mail_send($recipients, $headers, $body) { // XXX: use Mail_Queue... maybe $backend = mail_backend(); if (!isset($headers['Content-Type'])) { $headers['Content-Type'] = 'text/plain; charset=UTF-8'; $headers['Subject'] = utf8_encode_c(cleanup_mail($headers['Subject'])); } assert($backend); // throws an error if it's bad $sent = $backend->send($recipients, $headers, $body); if (PEAR::isError($sent)) { common_log(LOG_ERR, 'Email error: ' . $sent->getMessage()); return false; } return true; } |
在statusNet当中在connect设置当中可以注册使用手机短信,就是sms了。但是当你打开下拉菜单,没有中国的手机服务运营商。没有中文短信平台的支持,这对于中文化的statusNet微博而言是非常遗憾的一件事情。
我分析过它的短信发送机制,其实是基于Email的发送方式。也就是说,它把sms当成一个使用手机号码做为用户名的邮箱做为发送地址的。比如你的手机号是13912345678,那么你捆绑的手机邮箱就是13912345678@139.com,而StatusNet就向这个地址发送邮件,你收到之后回复的来源信箱也就是它了。
对于日本AU及softbank的短信息地址,至今还没有找到。很大的原因是它们对于垃圾短信的防止,所以地址并未公开。但是还是有很多人分析出了部分的手机短信息地址。只是因为它分得太细了,什么关东关西,北海九洲,我无法分清哪个手机号是属于哪里的,也就没有办法了。这可能需要它们的数据库了。
| 関東・中部 | %s@cmail.ido.ne.jp |
| 北海道 | %s@dct.dion.ne.jp |
| 東北 | %s@tct.dion.ne.jp |
| 北陸 | %s@hct.dion.ne.jp |
| 関西 | %s@kct.dion.ne.jp |
| 中国 | %s@cct.dion.ne.jp |
| 四国 | %s@sct.dion.ne.jp |
| 九州 | %s@qct.dion.ne.jp |
| 沖縄 | %s@oct.dion.ne.jp |
既然原理大约是这样,就按这个思路办吧。具体是否可行,我并没有去实验,因为本人没有中国的手机可以使用。但是我还是把办法写在这里,谁有兴趣可以自己试试。
打开数据库,找到sms_carrier数据表,增加三个字段,具体如下图:[......]




近期评论