php-mastodon-rss-to-bot-stateless开源项目

我要开发同款
匿名用户2021年11月08日
30阅读
开发技术Python
所属分类应用工具、IM/聊天/语音工具
授权协议MIT License

作品详情

PHPFeed-to-BotToolforMastodon

AtoolforcreatingbotsforMastodonwhichreadRSS/Atomfeeds.

Features:

MultiplebotsfromonescriptMultiplefeedsperbotSupports(valid)RSSandAtomStateless:inthesensethatitdoesnotmaintainacacheofwhichRSSpostshavebeenconvertedtotoots.

CurrentlyrunningtheRFIBotonmastodon.social

Setup

RequiresPHP7.0

YouwillneedacertfiletorunGuzzle.

Youwillalsoneedtosetthetimezoneofyourcomputerviathephp.inidate.timezonesetting.

LoadDependencies

DependenciesareloadedviaComposer

composerinstall

Itusesthefollowingdependencies:

phediverse/mastodon-restdg/rss-phpguzzlehttp/guzzleApplication

Thiscodetakescareofrunningthe3rdpartyapplicationwhichhandlesthebots.

Youwillneedtocopy/configurations/APP.example.jsonto/configurations/APP.json.

In/configurations/APP.jsonchangethenamepropertytoacustomname.

BotConfiguration

YouwillfirstneedtomanuallymaketheaccountontheMastodoninstanceofyourchoicewithanemail,passwordandusername.

Thefile/configurations/example.jsonisanexampleofabotconfiguration.CreateanewJSONinthe/configurations/folderandnameitforyourbot.

{"instance":"social.targaryen.house",//like'mastodon.social'"username":"my_username",//usernameforyourbot'saccount,notdisplayname//notusedatthispoint"email":"myemail+botname@mail.com",//emailforyourbot'slogin"password":"realpassword",//passwordforyourbot'slogin"hashtags":["all"],//arrayofstringsthatyouwantas//hashtags(#)ineachtoot//donotadd'#'"feeds":[{//arrayoffeedsforthisbot"type":"rss",//typeoffeed,rssoratom"url":"https://www.website.com/rss/one.xml",//urltofeed"hashtags":["cats"]//hashtagsforeverytootfromthisfeed},{"type":"rss","url":"https://www.website.com/rss/two.xml","hashtags":["music"]},{"type":"atom","url":"https://www.website.com/atom/three.xml","hashtags":["mood"]}]}

Createaseparateconfigurationfileforeachbotyouwishtorun.

UseUpdates

Ifyourconfigurationfileiscalledmy_rss.json,thentheRSSitemscanbeposted/updatedwith:

php/path/to/php-mastodon-rss-to-bot-stateless/index.phpmy_rss

Pleasenotethelackof'.json'intheparameter.

Tokeeptheapplication'stateless'(seetop),thetoolworksbasedoffoftimestamps.ThetoolwillcheckthetimestampofthelatesttootandgetallFeeditemsafterthattimestampandpoststhem.

Obviously,thishasthepotentialtonotbeasaccurateasabotwithacache,butI'mtoolazytobuildone.Ifyourfeedhasitemsaddedeveryminute(hopefullyunlikely),thenthistoolmaymissanitemortwoalongtheway.

Ifthebotisnewandhasnoposts,itwillonlypostthemostrecentfeeditem,nottheentirefeed.

Scheduling

Inordertohaveabotthatupdatesregularly,youwillneedtoscheduletheabovePHPcallwithaCrontaskoraScheduledTaskdependingonyoursystem.

Youwillneedtoscheduleseparatetasksforeachbot/config.

Additional

Ifyouneedtodisablethetoolforawhile(systemmaintenance,etc),butyoudon'twantthebottofloodMastodonwithabunchofbelatedpostswhenitstartsupagain,youcanjustmakeapostdirectlytothebotviatheMastodoninterfaceandthenstartthescheduledtaskagain.ThenewpostwillmakesurethemostrecenttimestampintheToottimelineisuptodate.

TODOCreateconfigclasstovalidateconfigurationsAddutilityclassandPHPUnitforlongtermstabilityGettootlengthbyinstanceReplacestrlenwithmorereliablefunctionExtendtoanyiterable,fetchable,timestampedresource
声明:本文仅代表作者观点,不代表本站立场。如果侵犯到您的合法权益,请联系我们删除侵权资源!如果遇到资源链接失效,请您通过评论或工单的方式通知管理员。未经允许,不得转载,本站所有资源文章禁止商业使用运营!
下载安装【程序员客栈】APP
实时对接需求、及时收发消息、丰富的开放项目需求、随时随地查看项目状态

评论