heidilabs/markov-bot

此包已被 放弃 并不再维护。没有建议的替代包。

使用 markov-php 的 Twitter 机器人

0.1 2015-03-11 17:56 UTC

This package is auto-updated.

Last update: 2019-12-14 08:36:33 UTC


README

这是一个开源的 Twitter 机器人,使用马尔可夫链生成推文。这基本上是一个用 PHP 编写的简单 CLI 应用程序,使用 Symfony 控制台。您可以手动运行命令,或将推文命令添加到 crontab 以定期安排机器人发推。

要求

  • php5-cli (仅 CLI,不需要 Web 服务器) 和 php5-curl
  • Composer
  • Twitter 应用,以及用于要发布推文的用户账户的正确凭据。最简单的方法是使用将要发布推文的同一账户创建应用程序,这样您可以直接在应用程序设置页面中获取用户令牌。有关详细说明,请参阅 本教程

快速安装说明

  1. 运行 composer create-project heidilabs/markov-bot myDirectory 以克隆应用程序存储库并安装依赖项
  2. 通过将 config/config-sample.yml 复制到 config/config.yml 来创建您的配置文件。编辑文件以设置您的选项,包括 Twitter 凭据。
  3. 现在可以使用它了。运行 php console.php 查看可用命令。要测试当前配置而不发布推文,请运行 php console.php markov:test .

命令

twitter:test

测试当前的 Twitter 设置并输出根据提供的密钥连接的用户和将要发布更新的用户。

    $ php console.php twitter:test

markov:test

测试当前的机器人设置并输出使用这些设置将发布的推文的示例。

    $ php console.php markov:test

markov:tweet

使用当前设置在 Twitter 上发布更新。推文也会输出。

    $ php console.php markov:tweet

cache:update

更新 Twitter 和 RSS 源的缓存样本。

    $ php console.php cache:update

配置源

目前有 3 个适配器:文件、Twitter 和 RSS。内容在第一次运行时进行缓存,您可以通过运行命令来更新此缓存。例如,您可以将其添加到 crontab 以每天更新一次。

方法

  • wordchain:这将根据您提供的样本生成词链。词链基本上将文本分组为 2 个词的部分,并尝试为链中的每个链接找到随机补充。当您有更多内容作为样本时,此方法效果更好。
  • 混合来源:这个方法很有趣,因为它混合了两个不同的来源,试图使用两个句子之间的共同交点。

来源

来源可以来自文本文件、Twitter账户或RSS源。内容被本地缓存在一个简单的txt文件中。您可以通过运行 php console.php cache:update 来随时更新样本。来源使用前缀定义,后跟路径(如果是本地文件)、不带协议前缀的URL(如果是RSS)或用户名(如果是Twitter来源)。

  • file://path/to/file.txt
  • twitter://erikaheidi
  • rss://feeds.gawker.com/gizmodo/full

注意:使用完整内容而不是只有标题和描述的RSS工作得更好。

示例

基于文本文件的wordchain

    markov.settings:
        method: wordchain
        sources:
            - file://data/nietzsche.txt
            - file://data/linux.txt

像魔咒一样,应该感到非常羞愧。失去对过程属于何种程度的天赋直觉

基于文本文件的混合来源

    markov.settings:
        method: mixedsource
        sources:
            - file://data/nietzsche.txt
            - file://data/mj.txt

谜语,孩子本质上的冲突性质不是我的儿子她说我是

基于两位不同Twitter用户的混合来源

    markov.settings:
        method: mixedsource
        sources:
            - twitter://erikaheidi
            - twitter://digitalocean

是的。打包开始了!@digitalocean @phpbenelux 多么美好的一天... 设置:深入研究服务发现并了解它是如何工作的

使用Twitter和文本文件的混合来源

    markov.settings:
        method: mixedsource
        sources:
            - twitter://erikaheidi
            - file://data/mj.txt

精彩。做得好 @ChasingUX ,做得好。总是三思而后行(真的要三思。)她告诉我宝宝

使用Twitter和RSS源的混合来源

    markov.settings:
        method: mixedsource
        sources:
            - twitter://erikaheidi
            - rss://feeds.gawker.com/gizmodo/full

在#phpbnl15闭幕式上的魔术表演。顺便说一句:我错过了,这一切都在BitStream上....颜色的变化

管理多个机器人

您可以在同一安装中运行多个机器人,为此您只需要创建其他配置文件并将它们放置在您的 "config" 文件夹中。然后,在调用 markov 命令时,您应该提供 --config 选项,将文件名作为参数传递。

示例

    $ php console.php twitter:test --config=other.yml
    $ php console.php twitter:tweet --config=other.yml