👢 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.
- 🧩 1Day1Bioclip plugin
Every day, the robot searches Unsplash for a collection with one of this queries for photo of another author and attempts to identify it using Bioclip. The details of the photo and its identification are then posted on Bluesky.
- 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