Git Product home page Git Product logo

bot-javabubble's Introduction

bot-javabubble

Implementation of the "Java Bubble" Mastodon bot.

Architecture

The "bot" is implemented as an AWS Lambda function. It wakes up once in a while - as indicated by a signal from an Event Bridge Rule - and does the following:

  • Downloads the latest and greatest list of Java accounts from javabubble.org
  • Stores them in a local DynamoDB table
  • Sends out a toot* with the "new" accounts

Configuration

The lambda function loads it's configuration from AWS SSM parameter path /APPLICATION/BOT-JAVABUBBLE/**. This is where it expects to find a proper Mastodon API key, location of the javabubble source, bot author mastadon handle, and so on.

In local development mode all this info can be supplied as ordinary OS environment variables.

Development

The bot is developed as a normal NPM project. The code here is based on TypeScript and when run locally it maintains data in a local DynamoDB table. No connectivity to AWS - and also no connectivity to any Mastodon server.

The bot infrastructure code (lambda, dynamodb, etc) is developed as a normal AWS CDK project.

Relase and deployment to production

There's no CI/CD pipeline yet. So releasing and deployment is a bit manual... basically a 2-step process:

  1. Generate a Lambda ZIP file from the app-javabubble directory
  2. Deploy it with CDK from the iac-javabubble directory
  • or more; there is a limit on the number of characters allowed in a toot.. so a long list of new accounts may be split up into multiple distinct toots.

bot-javabubble's People

Contributors

moelholm avatar

Watchers

 avatar

bot-javabubble's Issues

Update README to reflect new generic capability

The Bot is no longer "Java Bubble" only. The README, however, still only documents it in terms of Java.

Clean it up - documenting how it is used for the Java Bubble and AWS Bubble variants (and potentially other)

Announce: source

Source: Broadcast

Example:

TIP! You can download files with at least [x] mastodon accounts from [y]. They
are designed to be imported into your mastodon account as "Following lists". 
Importing a "Following list" is a very effective way to quickly build up a network
here on mastodon.

On behalf of the [a] community: A big thank you to [b] for maintaining this source ๐Ÿ‘๐Ÿผ

(I am using this source myself ๐Ÿค—)

Implement safety mechanism that won't broadcast excessively

In case of an empty db the bot will broadcast all accounts received. If it receives 1000 accounts then that is what it will announce afterwards. It is clearly not the intention in a clean db - and also - it is likely not what we want for any large enough numbers (it could indicate an anormaly in the source).

Update the "announce new accounts" feature such that it only announces up until 20 accounts. Anything above should just be stored - but not tooted. Granted, more than this amount could be received ... but in that case we will survive without spamming the fediverse anyways.

Please deactivate the bot ASAP

Thanks for the development of this bot, @moelholm. But unfortunately nothing has been going on for several years and the bot is constantly spreading false information in the Fediverse (see #32). That's a shame, because if it didn't post outdated handles, it would be very helpful.

But by spreading false, outdated Mastodon handles, users get confused and subscribe to old, defunct accounts and think, this person or group is now inactive on Mastodon. But that is not the case. And they don't know it. As there are more and more people who have switched instances, more and more people are affected. The bot directs users to accounts that have been closed. So today, the bot is doing more harm than good.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.