Qihoo 搜索接口 for vBulletin 3.5.X

作者:屈超(Chappell.Wat) 发布时间:July 27, 2006 分类:程式::五代

[更新日志]

060727:

今天参照 Qihoo 的 B 类客户接口文档,
vBulletin 编写了深度整合的接口,
效果与 Discuz 相同,
已经在一个客户的论坛测试中……

—————— 华丽的分割 ——————

年前俺拿到 Qihoo 提供的接口文档……
给 vBulletin 3.5.X 写搜索接口……
文档对数据编码的限定写得很暧昧……
Qihoo 那边的技术人员又迟迟联系不上……
结果直到昨天才正是测试通过完毕……
原来默认是支援 UTF8 数据的……
这才算是完结了一桩事……

目录:

下载:

很抱歉……
下载已取消……
只做存档……

目录:

说明:

本接口专门针对 vBulletin 3.5.X UTF8 中文版本编写……
同时兼容增强版标准版……
用户导入XML产品文件并上传接口文件即可……

如果有 GBK 版本的正版用户需要本接口……
请联系我……
我将为您提供 GBK 版本的接口……

目录:

测试:

由于该接口直接读取数据库……
很多敏感数据(比如隐藏帖)可能被直接被获取……
所以我限制了只有 Qihoo 的 IP (还有本机)才可访问数据……
如果你想自己进行远程测试……
请做如下修改:(我们假设你的IP是 XXX.XXX.XXX.XXX)
编辑 Qihoo.php ,搜索:

if (!$vbulletin->options['qihooenable'] OR (isset ($_SERVER['REMOTE_ADDR']) AND !preg_match ('/(60\\.28\\.252\\.|211\\.100\\.21\\.|222\\.36\\.4|127\\.0\\.0\\.1)/', $_SERVER['REMOTE_ADDR'])))
[/CoolCode]

替换为:

if (!$vbulletin->options['qihooenable'] OR (isset ($_SERVER['REMOTE_ADDR']) AND !preg_match ('/(60\\.28\\.252\\.|211\\.100\\.21\\.|222\\.36\\.4|127\\.0\\.0\\.1|XXX\\.XXX\\.XXX\\.XXX)/', $_SERVER['REMOTE_ADDR'])))
[/CoolCode]

测试完以后注意改回来……
安全第一嘛……

目录:

注意:

本接口专为我们中文官方发布的程序定制……
对于非正版用户无法使用或者使用后造成敏感数据泄漏等后果一概不负责……

正版用户也需要谨慎使用……
毕竟是将数据完全暴露给搜索引擎……

至于 Qihoo 是否会去采集贵坛的数据……
我们无法决定……
如果对自己论坛的人气有信心……
那么您就安装吧……

目录:

广告:

vBulletin China 欢迎其它有实力的服务商合作……
具体请根据 vBulletin China 的联系方式进行联系……

目录:

AnyMedia 拿下 vBulletin 官方六月插件票选头赏……

作者:屈超(Chappell.Wat) 发布时间:July 2, 2006 分类:口胡::一の瀬,程式::五代

AnyMedia 获奖结果

Mod. of the month

此乃炫耀日志……
不喜勿看……

AnyMedia 自从参与六月评选开始……
就一路领先……
不过支持率从 70% 一直降到 40%……
最终以 175 票收场……
领先第二名 85 票……
灭活活活活活活活……

以下是票选结果:

1st. AnyMedia BBCode for 3.5.x 总 175 票 (占 41.18%)
2nd. WMail - a POP3/SMTP Webmailer for vBulletin 总 90 票 (占 21.18%)
3rd. Moderation Auto-PM v1.0.1 总 56 票 (占 13.18%)
4th. vBMicrostats 总 55 票 (占 12.94%)
5th. vBulletin Attachment Lightbox 总 49 票 (占 11.53%)

第二名 WMail其实真的很不错……
可惜它碰上了 AnyMedia …… (-_-|||)
其中第二名和第三名这次又被推选为 Mod. of July 的参选者……
可惜他们碰到了另一个强角 —— ibProArcade ……
不过俺还是为 WMail 投上了友情的一票

目录:


MotM 票选流程介绍

给大伙儿介绍一下 “MotM 票选” 的流程:
MotM 是 Modification of the Month 的缩写……
参与票选的插件必须是在 vBulletin 官方插件论坛发布过的……
所有的插件 (截止今天正好 9300 个) 均能够被推选(Nominate)为当月的参选者……
(也就是说参选的插件并不一定是当月所发布的)
每个会员 (只有正版用户才有资格推选插件) 每个月仅有一次推选机会……
所以想通过注册马甲来作弊基本是不可能的……
(但是拥有“势力”的插件作者拉票倒是很容易……
AnyMedia 当初也靠 vbulletin China 拉到不少中文客户的票?……
不过凉鞋中途退出了 vbulletin China ……
以后中文用户可能得自行安装该插件了……)
说到哪里了?
哦……
官方每个月从当月被推选的所有插件中选取最高票数的五个插件进行票选……
(当然啦…… 曾经获奖的插件就无视掉了……)
票选周期一个月……
月末时获得最高票数的插件将在插件发布页面颁发“奖章”(我也不知怎么称呼这玩意儿)一枚……
其实除此之外甚么物质奖励也没有啦……
不过 AnyMedia 发布至今……
凉鞋除了认识 N 多不同肤色不同人种不同语言的国际友人以外……
也得到很多老外提供的卡司……
不过均因 Quota 问题当掉了……

目录:


vBulletin 插件概念解说

vbulletin 插件概念介绍
最后介绍下 vbulletin 所谓的“插件”这个东西……
中文对其的翻译倒是一直延续下来……
不过英文那边变化倒是很多……

最初叫 Hack ……
(最初的 vbulletin 所有插件都需要修改源程式码……
因此 Hack 这个包含动词意味的名字还是挺形象的……)
所以编写插件的人便被称为 Hacker ……
(怀念我在紫桐团队里的 Top Hacker 的牛×称号……)
可能由于 Hacker 与 Cracker 意义相近……
所以渐渐地被弃用……

而插件开始细化为 Plug-inModificationAdd-on 三种……

Plug-in 是利用 vbulletin 的内建 Hook 系统所建立起来的、可以自动安装卸载的、毋庸修改源程式码的插件……
AnyMedia 初阶段进化后变成为此类插件……

Modification 则是需要手动修改代码的插件……
包括 Code Mod.Template Mod. ……
与前者相比修改起来会比较麻烦……
复杂起来可以令初学者望而却步……
不过幸运的是 Code Mod. 可以通过添加 Hook 来解决……
但 Template Mod. 至今却未有甚么特别好的解决方案……
AnyMedia 至今仍然需要 Template Mod. ……

Add-on 又连写作 Addon ……
与 Hack 这个称呼属同时期产物……
二者的区别是:Hack 是针对论坛本身的源程式码进行修改……
而 Addon 则需要添加外部文件来进行扩展……
这里我继续沿用了 Addon 的字面意义……
将其作为区别与前面两种‘插件’称呼的一种形式……
可译为‘扩展’……
也即需要增加大量外部文件来实现某种功能……
我认为所谓的 Integration(整合)和 Bridge(嫁接)程序就应该属于 Addon 程序……
因为它们的目的是将外部程序引入原程序……

其间 vbulletin 的插件论坛又经过几次对‘插件’的名称调整……
(那段时间真是一天一个变……
我劝他们干脆自行创造一个词语算了……)

目前终于稳定下来:
统一称为 Modification ……不知甚么时候又开始活跃呢?

伴随插件的还有‘风格’这个概念……
对于 vbulletin 来说……
‘风格’这个称呼还算统一……
一直叫做 Style ……
与其它程式中所称的 Theme, Skin 一个意思……
所以它们三者是可以互换的……
但是 Template 这个概念则不同于有些程式……
它指单个的、独立的、集合于某个风格的代码片段……
大陆翻译为模版……
台湾省则习惯翻译为模组……
因此‘风格’还有另外一个意译的名字:
模版套系……
个人认为 Template Set 才能被译为模版套系吧?
以上

目录:

最纯净的 Apache 2 && PHP 5 && Mysql 5 for WinXP 配置法

作者:屈超(Chappell.Wat) 发布时间:June 25, 2006 分类:程式::五代,笔记::千草

写在前面:

如果你有处女情结……
那么请选用我的伺服器配置方式吧……
(笑……)
笑归笑……
转载请注明作者 & 文章来源……

我的安装配置方式当然不是最好的……
(虽然我自己认为是最完美的……)
但由于我个人有”绿色情结“……
实在不想多往系统盘丢文件……
所以选择了这样一种尽量绿色的安装方法……
而且软体的选择了能稳定运行的尽量较新的版本……
(为了保证开发的适应性,
采纳了 vBulletin 官方的推荐方案……)
希望对大家有用……
(其实你是最近重装系统才顺便写了这篇文章吧?)

目录:


前期准备:

[有关作业系统]

Windows XP SP2 (其实系统只要是 98 以上都可以遵循这样的方法我认为)

[有关 Apache 版本]
Apache 2推荐……
本例中我选用了 2.2.2 for Win32 ……

[有关 PHP 版本]
PHP 5推荐……
虽然版本号有点不吉利……
但本文中我还是毅然选择了 5.1.4 for Win32 Zip 版……

[有关 MySQL 版本]
MySQL 5推荐……
5.1 尚不稳定……
我们姑且还是选择 MySQL 5.0.22 for Win32 Zip 版……

[有关其它]
本方案并不涉及系统文件夹……
所以我们大可选择其它分区的某个文件夹来方便日后的伺服器维护……
本文以
X:\Server
为例……
文件夹名称最好不要包含空格或其它非英文字符……

另外……
本文中的步骤只是鄙人习惯的安装顺序……
实际上亦可颠倒反复……
不在话下……

目录:


安装 Apache:

[步骤一]

运行 apache_2.2.2-win32-x86-no_ssl.msi ……
一路 Next 下来……
到选择安装方式的时候选择 “Custom” 自定义方式……
然后 Next 选择安装路径……
定位到
X:\Server\Apache
当然啦……
你也可以选择其它路径……
甚至选择 “Complete” 安装都没问题……
我只是习惯将所有服伺服器相关软体集中到一起而已……

[步骤一点五]

本来不准备写 IIS 与 Apache 的共存配置……
想一想还是带一笔吧……
提示填写 Server Information 时……
最下方会让你选择端口……
如果你安装了 IIS 伺服器……
这里就选择第二项 “only for the current user, on Port 8080, when started manually.”……
也就是说 Apache 将占用 8080 端口……
如果你没安装 IIS ……
无视之……
注意:如果端口为 8080 或其它……
记得访问时带上端口号……
此后不再体型

[步骤二]

继续 Next ……
弹出几个 CMD 窗口安装 Windows 服务以后……
安装就完成了……
右下角将出现 Apache 粉红色的羽毛 Icon……
不出意外图标上应该显示绿灯(表示 HTTP 伺服已经正常启动)……
你可以访问 http://127.0.0.1 来试试……
如果屏幕出现 “It Works” 就表示安装成功……
(我记得以前的版本不是这样的……
而是一个挺花哨的页面……
所以只要不出现找不到页面的提示……
Apache 伺服就安装成功了)
当然了……
如果亮起红灯……
配置肯定出现了错误……
回头查查吧……

[步骤三]

至此……
Apache 伺服器就安装完毕了……

目录:


安装 PHP :

[步骤一]

解压 PHP-5.1.4-Win32.zip ……
并放置到
X:\Server\PHP
之下……

[步骤二]

接下来为 PHP 的安装目录添加环境变量……
在我的电脑图标上点击滑鼠右键……
查看‘属性’……
然后切换到‘高级’选项卡……
点击‘环境变量’按钮(快捷键:Alt+N)……
在弹出的‘系统变量’域中找到 ‘Path’ 变量……
双击编辑并在变量值的最后添加
;X:\Server\PHP
(注意有个分号……
用来分隔之前的值)

[步骤三]

重启电脑……
为虾米?
答曰让环境变量生效……

[步骤四]

至此 PHP 就安装完毕了……
当然……
现在还未与 Apache 关联……
而且未作任何设置……
不要急……
后面我会写到……

目录:


配置 Apache:

[步骤一]

尤为重要的一步……
如果你跟我一样选择了当前最新的 PHP 稳定版本 5.1.4……
官方下载来的源码包中的模块化支援 PHP5apache2.dll 是不适用于 Apache 2.2.2 的……
据查需要重新编译 PHP ……
不过PHP5 研究室提供了解决方法:
下载这个压缩包……
解压后将 PHP5apache2.dll 扔进
X:\Server\PHP
覆盖原文件……
将 httpd.exe.manifest 扔进
X:\Server\Apache\Bin
文件夹……
最后运行 vcredist_x86.exe (如果你安装有 .Net FrameWork 就无需安装此文件)……
当然……
如果你选择比较旧的版本则可略过此步……

[步骤二]

下面开始修改 Apache 配置文件……
打开
X:/Server/Apache/conf/httpd.conf

先修改文档发布路径……
搜索:
DocumentRoot "X:/Server/Apache/htdocs"
将值修改成你想要的发布路径……
比如:
DocumentRoot "X:/Server/WWW"
然后还有一处也需要修改……
否则将无权访问……
搜索:
Directory "X:/Server/Apache/htdocs"
修改为:
Directory "X:/Server/WWW"

再来修改默认脚本……
搜索:
DirectoryIndex index.html
添加你想要的默认脚本名称……
用空格分隔……
注意前后有优先顺序……
比如修改为:
DirectoryIndex index.PHP index.html index.htm

针对 PHP 5 的配置……
在文档的最下方加入以下字符:
# 调用 PHP 5 模块
LoadModule PHP5_module "X:/Server/PHP/PHP5apache2.dll"
# 添加 Mime 类型…… 亦可以修改 mime.types 文件
AddType application/x-httpd-PHP .PHP
AddType application/x-httpd-PHP-source .phps
# 添加默认字符集…… utf8才是王道……
AddDefaultCharset UTF8
# 设置 PHP.ini 目录
PHPIniDir "X:/Server/PHP"

[步骤三]

至此 Apache 已经可以支持 PHP 了……
本文仅介绍如何进行基本安装……
将不涉及详细的配置以及优化……
各位可以自行参阅手册进行配置……

目录:


安装 MySQL:

[步骤一]

解压 MySQL-noinstall-5.0.22-win32.zip ……
并放置到
X:\Server\MySQL
之下……

[步骤二]

接下来安装 MySQL 服务……
打开 cmd.exe ……
然后进入
X:\Server\MySQL\bin
目录……

虾米!
你不会?
那我还是写清楚吧:
开始->运行->cmd->回车……
键入:
cd /D X:\Server\MySQL\bin
回车
如果你的文件夹带有空格……
别忘了在路径外添加双引号……
然后运行 MySQL 服务安装脚本:
mysqld-nt -install
显示 “MySQL service installed successfully" 则表示安装成功……

[步骤三]

接下来为 MySQL 的安装目录也添加一个环境变量……
在我的电脑图标上点击滑鼠右键……
查看‘属性’……
然后切换到‘高级’选项卡……
点击‘环境变量’按钮(快捷键:Alt+N)……
在弹出的‘系统变量’域中找到 ‘Path’ 变量……
双击编辑并在变量值的最后添加
;X:\Server\MySQL
(注意有个分号……
用来分隔之前的值)

[步骤四]

重启电脑……
为虾米?
答曰让环境变量生效……
(我靠……
安装 PHP 的时候为什么不一起说……
害我还得重启一遍……)
这个嘛……
嘿嘿……
我忘了……

[步骤五]

然后配置 MySQL ……
来到
X:\Server\MySQL
里头应该有若干个 ini 文件……
我们根据自己的需要任取一个……
(大同小异……
仅是默认配置不同……
你也可以自行修改的)
由于我仅仅为了本地的开发调试……
所以选择了
my-small.ini
将其复制一份……
命名为:
my.ini
并用文本编辑器打开它:
搜索:
[mysqld]
在下方加入以下字符行:
#MySQL 安装目录
basedir=X:/Server/MySQL
#MySQL 默认数据目录
datadir=X:/Server/MySQL/data
# 默认字符集…… 设置为 UTF8 吧
default-character-set=utf8
# 默认储存引擎…… 还是回到 MyISAM 时代吧…… InnoDB 被甲骨文买了……
default-storage-engine=MyISAM

再在文档最下方加入:
[WinMySQLAdmin]
Server=X:/Server/MySQL/bin/mysqld-nt.exe

[步骤六]

重启电脑……
为虾米?
答曰让环境变量生效……
(我靠……
安装 PHP 的时候为什么不一起说……
害我还得重启一遍……)
这个嘛……
嘿嘿……
我忘了……

[步骤七]

MySQL 配置完成……
下面可以启动试试……
打开 cmd.exe……
输入:
net start MySQL
若显示‘MySQL服务已经启动成功’……
则表示……
则表示这句话说得没错…… (-__-!)
否则请回头检查……

[步骤八]

服务器启动了……
我们就可以登录试试了……
打开 cmd.exe……
输入:
cd /D X:\Server\MySQL\bin
回车
接着登陆:
MySQL -u root -p
由于 root 用户初始状态无密码……
提示 Enter Password 时直接回车即可……
然后命令行进入 MySQL Shell 状态即表示‘入侵’成功……

[步骤九]

如果你不希望别人也用空密码入侵你……
那么最好给 root 设置一个牛叉点儿的密码……
在 MySQL Shell 状态下输入:
set password for 'root'@'localhost' = old_password('Password_for_root');
(这是 MySQL 5 的新命令……
之前的版本请将 old_password 改成 password
将其中 Passwor_for_root 更换为你自个儿的密码吧……
别太简单……
提示 ‘Query Ok’ 表明修改成功……
不信的话可以 exit; 出去再登录试试……

[步骤十]

至此……
MySQL 的安装工作完毕……
详细的优化配置请参阅手册……
至于 MySQL 与 PHP 的关联下面将提到……

目录:

配置 PHP:

[步骤一]

进入
X:\Server\PHP
PHP.ini-recommend 更名为
PHP.ini
并用文本编辑器打开……

[步骤二]

修改错误报告级别……
你会发现满屏的警告……
搜索:
error_reporting = E_ALL
修改为:
error_reporting = error_reporting = E_ALL & ~E_NOTICE & ~E_STRICT

[步骤三]

由于是本地调试……
我当然希望错误被输出供我调试……
搜索:
display_errors = Off
修改为:
display_errors = On

[步骤四]

不过在本地记录错误似乎没有必要……
搜索:
log_errors = On
修改为:
log_errors = Off

[步骤五]

设置扩展库的路径是很必要的……
搜索:
extension_dir = "./"
修改为:
extension_dir = "X:/Server/PHP/ext"

[步骤六]

PHP 5 默认是不开启对 MySQL 的支持的……
搜索:
;extension=PHP_MySQL.dll
去掉前面的分号……
则修改为:
extension=PHP_MySQL.dll

[步骤七]

下面针对 vBulletin 来实施一些配置修改……
由于它早已实现了对 Mysqli 的支援……
所以这里我们引入 MySQL 扩展库……
搜索:
extension=PHP_MySQL.dll
在下方加入:
extension=PHP_mysqli.dll

为了更好的使用它的一些图形相关功能……
我们需要加载 GD2 库……
搜索:
;extension=PHP_gd2.dll
去掉前面的分号……
则修改为:
extension=PHP_gd2.dll

我们还希望对一些较常用的库进行加载……
比如 PHP_mbstring.dll 、 PHP_curl.dll 、 PHP_sockets.dll 、 PHP_xmlrpc.dll 等……
不在话下……
方法同上……
(这里仅列举了常用扩展……
其它的扩展请自行根据需要定夺……)

尽管 vBulletin 使用的是其内建的 Session 机制……
但 PHP 的 Session 机制在很多程序中仍旧是必备的……
搜索:
;session.save_path = "/tmp"
修改为一个存在的路径里……
或者到发布目录下建立一个 tmp 目录……
这里我们选用前一种方法……
先建立这样一个目录:
X:\Session
然后修改配置行为:
session.save_path = "X:/Session"

[步骤八]

到这里基本就设置完毕了……
PHP 也能正常支持 MySQL 了……
更详细的设置大家还是去翻手册了……

目录:

结语:

最基本的 WAMP 环境就配置完毕了……
接下来我还配置了 Zend Optimizer 和 Subversion……
由于不是标配……
这里就不做介绍了……

其实 Apache 服务器也可以不用安装……
可惜我未找到 2.2.2 的 ZIP 版本……
所以只能自行解包了 Apache 的安装程序……
提取了文件进行所谓的”绿色“安装……
偏执狂……

呃………………
想到甚么再补充进来吧……
拜拜……

目录:

昨日试着汉化 PSP 游戏…… 未果……

作者:屈超(Chappell.Wat) 发布时间:May 28, 2006 分类:口胡::一の瀬,程式::五代,电动::四谷

昨晚抽空研究了这两个游戏……

《富豪街》汉化截图1

《富豪街》的文本量不少……
但是比较集中……
而且如果我没有猜错的话……
几乎全部都没有加密(因为游戏我刚玩了部分)……
但是它自带的日文字库的汉字太少……
以至于《怪物猎人》的汉化方式对其来说不可取……
很多常见字几乎都没有……
所以……
大伙儿如果要看到它的汉化版……
可能得等我们找到它的字库……
(好在可能性是有的……)

《火影忍者》汉化截图1

《火影忍者》字库里的汉字相比之下就大多了……
但是问题是只有选项、忍术、道具、人名部分明文摆在文件内……
剧情对话的文本至今我没找到……
很有可能是加密了……
所以要完美汉化火影忍者……
不仅要找到字库……
可能还得把对话的文本找到并导出……
想必工作量也不小……

不知有没有志同道合的朋友呢?

下面是我粗略汉化过的菜单界面截图……

《富豪街》

《富豪街》汉化截图1 《富豪街》汉化截图2 《富豪街》汉化截图3 《富豪街》汉化截图4
《富豪街》汉化截图5 《富豪街》汉化截图6 《富豪街》汉化截图7 《富豪街》汉化截图8

《火影忍者》

《火影忍者》汉化截图1 《火影忍者》汉化截图2 《火影忍者》汉化截图3 《火影忍者》汉化截图4
《火影忍者》汉化截图5 《火影忍者》汉化截图6 《火影忍者》汉化截图7

自定义 Flv 播放器播放 Youtube 视频……

作者:屈超(Chappell.Wat) 发布时间:May 27, 2006 分类:程式::五代

Youtube 自从在视频加入 Session 机制以后……
不仅直接下载已经成为往事……
而且即使你附带 Session 参数进行播放也仅仅只有几分钟的有效期……
(与此不同的是 Vlog 的 Session 方式……
它的时效长很多……)
这样一来得使用 Youtube 的官方的播放器……

由于我给 AnyMedia 使用内建播放器……
理所当然就只能支持几分钟的时效了……

AnyMedia 对 Youtube 视频的支持也失效了……
于是我昨天研究了一下如何继续使用自定义的 Flv 播放器来播放 Youtube 视频……
由于 Action Script 的 LoadVars 函式有跨域限制……
所以我选择通过 PHP 获取视频真实地址……
然后再通过 Flash 获取本地 PHP 提供的地址……
(至于为什么 PHP 需要获取两次视频地址……
原因是前一次页面发送了 Location Header ……
而似乎播放器不能处理报文头的转向信息……)

好歹终于可以播放了……
由于每次播放都必须通过建立远程连接来获取地址……
所以播放前得缓劲儿几十秒……

下面提供全部相关文件……
程序未加密未混淆……
希望您转载时保留俺的部落格地址……

原始地址:http://www.youtube.com/watch?v=iCTrSL9i1EM

演示:

《CountDown》 by Hyde

下载:
Box 下载: http://www.box.net/public/arkxmaufo4