<commit_before>## BgmTweeter v1.2 (aka propbgmrss)
by fishswing 2015-02-21  
http://www.swingworks.net

BgmTweeter是一个Bangumi的Twitter和微博同步工具，  
同时是一个改进版的Bangumi RSS输出，基于PHP 5以上且支持curl的主机运行。

目前Bangumi原生RSS功能的效果很差，  
利用该项目可以输出一个可读性更好的RSS，同时自动发布到Twitter或微博上。

详细介绍请点击：  
http://www.swingworks.net/2012/04/propbgmrss/

项目主页在  
https://github.com/fishswing/BgmTweeter

--

该项目的feed生成模块使用了feedcreator库（版本1.8）并对其进行了一些修改，  
该库文件保持LGPL协议进行授权，其源代码和授权文本的副本位于feedcreator目录下。  
该项目的新浪微博发布模块使用了新浪微博开放平台的官方PHP SDK并对其进行了一些修改。  
该项目的Twitter发布模块使用了abraham的twitteroauth库并对其进行了一些修改。  
该项目抓取和处理的信息由Bangumi番组计划(bgm.tv)提供，其权利属于各自的版权方和用户。  
项目的其余代码采用MIT License进行授权，其授权文本位于根目录下的LICENSE.txt。  

使用本项目即代表您默认遵守所有相应的协议。

--

### 升级说明 ###

#### 【v1.1a升级到v1.2说明】 ####
1) 请首先备份config.php和cron.php，  
2) 将所有文件上传覆盖，  
3) 对照备份下来的config.php配置新的config.php，  
4) 将备份下来的cron.php覆盖回去，  
5) 最后将titlecache.id删除。

--

### 使用说明 ###

BgmTweeter可以部署为自动发布工具，也可以作为RSS输出。

#### 【如何部署为RSS输出】 ####

如果你不懂得如何配置服务器的cron任务，或者烦于申请app，  
可按照以下配置为RSS输出，并且配合ifttt来达到自动发布的目的。

1. 在config.php中配置好用户名、RSS类别、标题、节目名样式等信息；
2. 将所有文件上传到php服务器；
3. RSS的地址即为 `http://<your_domain>/bgmtweeter/`


#### 【如何部署为RSS输出，并且使用cron】 ####

使用cron定时触发可以减少服务器压力，尤其是配置了多处RSS检查的情况下。  
这种情况下爬虫访问的是静态的xml页面，不会每次强制刷新。

1. 在config.php中配置好用户名、RSS类别、标题、节目名样式等信息；
2. 你可以修改`$rss_filename`为自己喜欢的xml文件名，默认为`rss.xml`；
3. 在cron.php中加入首页的完整url：`http://<your_domain>/bgmtweeter/index.php`
4. 将所有文件上传到php服务器；
5. 在服务器配置面板新建一个cron任务，推荐将其执行频率调整为10分钟左右：  
   > php /home/<your_domain_files_path>/bgmtweeter/cron.php >/dev/null 2>&1
   其中`<your_domain_files_path>`是后台管理文件的linux文件系统路径；
6. 先手工访问测试一下rss.xml是否生成：`http://<your_domain>/bgmtweeter/`
7. RSS的地址即为 `http://<your_domain>/bgmtweeter/rss.xml`


#### 【如何自动发布Twitter和微博】 ####

自动发布Twitter和微博需要配置好cron，而且需要申请一个app用于个人发布。

1a.如需要发布微博，请先到新浪创建一个app，方法为：  
1) 到微博开放平台(http://open.weibo.com/development)点击“创建应用”，然后选“网页应用”；  
2) 将“应用地址”设置为`http://<your_domain>/bgmtweeter/weibo/`，填好其它相关信息，点“创建”；  
3) 创建成功后，在“高级信息”将“授权回调页”和“取消授权回调页”设置为  
   > http://<your_domain>/bgmtweeter/weibo/callback.php
   然后记录下App-Key和App-Secret；  
4) 在`weibo/config.php`填入`App-Key`，`App-Secret`和`回调页地址(Callback URL)`；  
5) 在根目录的config.php中将`$weibo_enabled`设为`true`，并设置好`$weibo_pattern`；  
6) 由于微博API的限制，在任何时候（包括今后）都请勿将app提交审核！  

1b.如需要发布Twitter，请先到Twitter创建一个app，方法为：  
1) 到Twitter Developers页面(https://apps.twitter.com/)点击“Create New App”；  
2) 填写相关信息，并将“Callback URL”设置为  
   > http://<your_domain>/bgmtweeter/twitter/callback.php  
3) 创建成功后，会进入Application页面，点击“Permissions”选项卡；  
4) 将“Access”选择为“Read and Write”，然后点底部的“Update Settings”；  
5) 点击“Keys and Access Tokens”选项卡，记录Consumer Key和Consumer Secret，填入`twitter/config.php`；  
6) 在根目录的config.php中将`$twitter_enabled`设为`true`，并设置好`$twitter_pattern`。

2. 完成上节“如何部署为RSS输出，并且使用cron”的第1步到第4步；

3. 如配置了微博功能，请访问 `http://<your_domain>/bgmtweeter/weibo/` 完成授权；  
   如配置了Twitter功能，请访问 `http://<your_domain>/bgmtweeter/twitter/` 完成授权；

4. 完成上节“如何部署为RSS输出，并且使用cron”的剩余步骤。


#### 【如何同时生成和发布不同种类的feed】 ####

由于feedcreator库的限制，如果你需要同时生成多个feed（如进度和收藏各一个），  
请拷贝`index.php`和`config.php`为`index2.php`和`config2.php`，  
在`config.php`和`config2.php`中设置不同的`$rss_type`和`$rss_filename`，  
将`index2.php`的`require_once("config.php")`修改为`require_once("config2.php")`。  
如果使用cron，还需将`index2.php`添加到`cron.php`中。

--

### 更新日志 ###

##### 2015-02-21 v1.2 #####
1.propbgmrss现在改名为BgmTweeter；
2.发布和RSS生成现在分离成两个独立的功能；
3.RSS标题可自定义，番组名字可以自定义中英文样式；
4.代码优化。

##### 2013-07-07 v1.1a #####
1.修正番组话数为.5时显示错位的问题。

##### 2013-07-06 v1.1 #####
1.支持Twitter API v1.1。

##### 2013-04-30 v1.0b #####
1.修正番组中文名错误的问题。

##### 2013-04-05 v1.0a #####
1.增加自动截断功能，防止字数超出140字限制导致发送失败。

##### 2012-11-14 v1.0 #####
1.改进新浪微博授权页的显示方式，提示有效期；
2.修正总话数为??的番组在某些情况下不能更新feed的问题；
3.修正新浪SDK的一处缺陷导致未开启短标签的服务器无法授权的问题。

##### 2012-09-03 v0.9 #####
1.修正因Bangumi网站微调造成番组中文名无法显示的问题；
2.升级到新浪微博OAuth V2端口；
3.针对新浪微博V2端口的机制进行优化，允许原用户更新授权，提示有效期；
4.增加授权页显示当前运行状态。

##### 2012-06-10 v0.8 #####
1.增加Twitter自动发布功能；
2.增加了oauth文件检查，文件已存在时禁止授权操作以防止被他人冒用；
3.修改OAuth库代码解决多微博冲突问题；
4.新增了两个微博发布pattern支持的字段；
5.微调番组中文名显示样式；
6.代码精简优化。

##### 2012-06-02 v0.7 #####
1.完善了新浪微博自动发布功能。改为使用oauth1授权，现在起授权一次就可以长期运行了。

##### 2012-05-26 v0.5 #####
1.增加中文番组名显示。

##### 2012-04-10 v0.4 #####
1.增加新浪微博自动发布功能。

##### 2012-04-03 v0.3 #####
第一个发布版本
1.去除冗余循环检查；
2.修正书籍进度不能显示的问题；
3.修正进度标题过长导致截断的问题。

##### 2012-03-31 v0.2 #####
测试版本<commit_msg>Tuning format<commit_after>## BgmTweeter v1.2 (aka propbgmrss)
by fishswing 2015-02-21  
http://www.swingworks.net

BgmTweeter是一个Bangumi的Twitter和微博同步工具，  
同时是一个改进版的Bangumi RSS输出，基于PHP 5以上且支持curl的主机运行。

目前Bangumi原生RSS功能的效果很差，  
利用该项目可以输出一个可读性更好的RSS，同时自动发布到Twitter或微博上。

详细介绍请点击：  
http://www.swingworks.net/2012/04/propbgmrss/

项目主页在  
https://github.com/fishswing/BgmTweeter

--

该项目的feed生成模块使用了feedcreator库（版本1.8）并对其进行了一些修改，  
该库文件保持LGPL协议进行授权，其源代码和授权文本的副本位于feedcreator目录下。  
该项目的新浪微博发布模块使用了新浪微博开放平台的官方PHP SDK并对其进行了一些修改。  
该项目的Twitter发布模块使用了abraham的twitteroauth库并对其进行了一些修改。  
该项目抓取和处理的信息由Bangumi番组计划(bgm.tv)提供，其权利属于各自的版权方和用户。  
项目的其余代码采用MIT License进行授权，其授权文本位于根目录下的LICENSE.txt。  

使用本项目即代表您默认遵守所有相应的协议。

--

### 升级说明 ###

#### 【v1.1a升级到v1.2说明】 ####
1) 请首先备份config.php和cron.php，  
2) 将所有文件上传覆盖，  
3) 对照备份下来的config.php配置新的config.php，  
4) 将备份下来的cron.php覆盖回去，  
5) 最后将titlecache.id删除。

--

### 使用说明 ###

BgmTweeter可以部署为自动发布工具，也可以作为RSS输出。

#### 【如何部署为RSS输出】 ####

如果你不懂得如何配置服务器的cron任务，或者烦于申请app，  
可按照以下配置为RSS输出，并且配合ifttt来达到自动发布的目的。

1. 在`config.php`中配置好用户名、RSS类别、标题、节目名样式等信息；
2. 将所有文件上传到php服务器；
3. RSS的地址即为 `http://<your_domain>/bgmtweeter/`


#### 【如何部署为RSS输出，并且使用cron】 ####

使用cron定时触发可以减少服务器压力，尤其是配置了多处RSS检查的情况下。  
这种情况下爬虫访问的是静态的xml页面，不会每次强制刷新。

1. 在`config.php`中配置好用户名、RSS类别、标题、节目名样式等信息；
2. 你可以修改`$rss_filename`为自己喜欢的xml文件名，默认为`rss.xml`；
3. 在`cron.php`中加入首页的完整url：`http://<your_domain>/bgmtweeter/index.php`
4. 将所有文件上传到php服务器；
5. 在服务器配置面板新建一个cron任务，推荐将其执行频率调整为10分钟左右：  
   `php /home/<your_domain_files_path>/bgmtweeter/cron.php >/dev/null 2>&1`  
   其中`<your_domain_files_path>`是后台管理文件的linux文件系统路径；  
6. 先手工访问测试一下rss.xml是否生成：`http://<your_domain>/bgmtweeter/`  
7. RSS的地址即为 `http://<your_domain>/bgmtweeter/rss.xml`


#### 【如何自动发布Twitter和微博】 ####

自动发布Twitter和微博需要配置好cron，而且需要申请一个app用于个人发布。

1a.如需要发布微博，请先到新浪创建一个app，方法为：  
1) 到微博开放平台(http://open.weibo.com/development)点击“创建应用”，然后选“网页应用”；  
2) 将“应用地址”设置为`http://<your_domain>/bgmtweeter/weibo/`，填好其它相关信息，点“创建”；  
3) 创建成功后，在“高级信息”将“授权回调页”和“取消授权回调页”设置为  
   `http://<your_domain>/bgmtweeter/weibo/callback.php`  
   然后记录下App-Key和App-Secret；  
4) 在`weibo/config.php`填入`App-Key`，`App-Secret`和`回调页地址(Callback URL)`；  
5) 在根目录的config.php中将`$weibo_enabled`设为`true`，并设置好`$weibo_pattern`；  
6) 由于微博API的限制，在任何时候（包括今后）都请勿将app提交审核！  

1b.如需要发布Twitter，请先到Twitter创建一个app，方法为：  
1) 到Twitter Developers页面(https://apps.twitter.com/)点击“Create New App”；  
2) 填写相关信息，并将“Callback URL”设置为  
   `http://<your_domain>/bgmtweeter/twitter/callback.php`  
3) 创建成功后，会进入Application页面，点击“Permissions”选项卡；  
4) 将“Access”选择为“Read and Write”，然后点底部的“Update Settings”；  
5) 点击“Keys and Access Tokens”选项卡，记录Consumer Key和Consumer Secret，填入`twitter/config.php`；  
6) 在根目录的config.php中将`$twitter_enabled`设为`true`，并设置好`$twitter_pattern`。

2. 完成上节“如何部署为RSS输出，并且使用cron”的第1步到第4步；

3. 如配置了微博功能，请访问 `http://<your_domain>/bgmtweeter/weibo/` 完成授权；  
   如配置了Twitter功能，请访问 `http://<your_domain>/bgmtweeter/twitter/` 完成授权；

4. 完成上节“如何部署为RSS输出，并且使用cron”的剩余步骤。


#### 【如何同时生成和发布不同种类的feed】 ####

由于feedcreator库的限制，如果你需要同时生成多个feed（如进度和收藏各一个），  
请拷贝`index.php`和`config.php`为`index2.php`和`config2.php`，  
在`config.php`和`config2.php`中设置不同的`$rss_type`和`$rss_filename`，  
将`index2.php`的`require_once("config.php")`修改为`require_once("config2.php")`。  
如果使用cron，还需将`index2.php`添加到`cron.php`中。

--

### 更新日志 ###

##### 2015-02-21 v1.2 #####
1.propbgmrss现在改名为BgmTweeter；  
2.发布和RSS生成现在分离成两个独立的功能；  
3.RSS标题可自定义，番组名字可以自定义中英文样式；  
4.代码优化。

##### 2013-07-07 v1.1a #####
1.修正番组话数为.5时显示错位的问题。

##### 2013-07-06 v1.1 #####
1.支持Twitter API v1.1。

##### 2013-04-30 v1.0b #####
1.修正番组中文名错误的问题。

##### 2013-04-05 v1.0a #####
1.增加自动截断功能，防止字数超出140字限制导致发送失败。

##### 2012-11-14 v1.0 #####
1.改进新浪微博授权页的显示方式，提示有效期；  
2.修正总话数为??的番组在某些情况下不能更新feed的问题；  
3.修正新浪SDK的一处缺陷导致未开启短标签的服务器无法授权的问题。

##### 2012-09-03 v0.9 #####
1.修正因Bangumi网站微调造成番组中文名无法显示的问题；  
2.升级到新浪微博OAuth V2端口；  
3.针对新浪微博V2端口的机制进行优化，允许原用户更新授权，提示有效期；  
4.增加授权页显示当前运行状态。

##### 2012-06-10 v0.8 #####
1.增加Twitter自动发布功能；  
2.增加了oauth文件检查，文件已存在时禁止授权操作以防止被他人冒用；  
3.修改OAuth库代码解决多微博冲突问题；  
4.新增了两个微博发布pattern支持的字段；  
5.微调番组中文名显示样式；  
6.代码精简优化。

##### 2012-06-02 v0.7 #####
1.完善了新浪微博自动发布功能。改为使用oauth1授权，现在起授权一次就可以长期运行了。

##### 2012-05-26 v0.5 #####
1.增加中文番组名显示。

##### 2012-04-10 v0.4 #####
1.增加新浪微博自动发布功能。

##### 2012-04-03 v0.3 #####
第一个发布版本  
1.去除冗余循环检查；  
2.修正书籍进度不能显示的问题；  
3.修正进度标题过长导致截断的问题。

##### 2012-03-31 v0.2 #####
测试版本
{'fraction_non_alphanumeric': 0.17147806004618937, 'fraction_numerical': 0.053810623556581984, 'mean_word_length': 6.070204081632653, 'pattern_counts': {'":': 0, '<': 25, '<?xml version=': 0, '>': 32, 'https://': 4, 'lorem ipsum': 0, 'www.': 4, 'xml': 10}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 2, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '1606482', 'n_tokens_mistral': 6025, 'n_tokens_neox': 6711, 'n_words': 390}