👢 botEnSky is a BlueSky social app 🤖 bot born on May 16, 2024.
- written in JavaScript (Node.js ESM Project),
- the worthy successor to @botentrain1 (ex Twitter bot - code) but for BlueSky.
His ambition is to bring 😊 happiness to 🦋 Bluesky 👤 users.
- BlueSky 🤖 Bot account : @botensky.bsky.social
- Bot engine 🌐 WebPage : botensky.onrender.com
- French help - cf. botensky.onrender.com
- English : cf. below.
- 🧩 Plantnet plugin
search a post with an embedded image, a not muted author, and without reply using some questions and use Pla@ntNet API to try to identify the flower.
-
on good score result: post a reply with confident ratio, name, common name, and embed sample image +alt (provided by Pl@ntNet)
-
on bad score result, or nothing detected result: mute author and don't reply. The action to "mute" the author is to avoid to replay the same plantnet identification twice a day (for same result). Muted authors are unMuted by UnMute plugin at the end of the day.
-
🧩 askPlantnet plugin
search a post with one of askPlantnet mention, and try to identify the parent post first image using the same previous logic except that bad score or nothing detected will produce a reply to the mention.
- 🧩 unMute plugin
remove bot all muted authors.
- 🧩 Summary plugin
get some analytics for last 7 days of bot activity.
- 🧩 BioClip plugin
search a post with an embedded image, a not muted author, and without reply using some questions and use GrBird API to try to classify the bird.
-
on good score result: post a reply with confident ratio, species, genus, family, common name, and a link to flickr gallery (provided by Avibase)
-
on bad score result, or nothing detected result: mute author and don't reply. The action to "mute" the author is to avoid to replay the same classification twice a day (for same result). Muted authors are unMuted by UnMute plugin at the end of the day.
-
🧩 askBioclip plugin
search a post with one of askBioclip mention, and try to classify the parent post first image using the same previous logic except that bad score or nothing detected will produce a reply to the mention.
- Github Actions workflows (
trigger_*
) are used to trigger the bot, they are based onschedule
directives (UTC time, doc)
- cf. CONTRIBUTING
- releases notes - generated via
gren
- tests - code-coverage
Application and code structure:
- NodeJs and Node dependencies (cf. graph)
- BlueSky API
Services ( having free plan 🚀 🌷 )
- GitHub Actions
- Render free app hosting and automated deployments
- PlantNet.org (API) - plant identification service (max 200 req/days)
- BioCLIP (GrBird API) - classification from BioCLIP : a CLIP model trained on a new 10M-image dataset of biological organisms with fine-grained taxonomic labels. (cf. paper for more details) - credits : Samuel Stevens, Jiaman Wu, Matthew J Thompson, Elizabeth G Campolongo, Chan Hee Song, David Edward Carlyn, Li Dong, Wasila M Dahdul, Charles Stewart, Tanya Berger-Wolf, Wei-Lun Chao, Yu Su.
- betterstack - logs management
Team:
- cf. contributors