Skip to content

Fazendaaa/I-m-a-Spoiler-Bot

Repository files navigation

I'm a Spoiler Bot




Say Thanks!

English README Portuguese README

Build Status codecov Codacy Badge Dependencies Known Vulnerabilities Maintainability

A friendly Telegram bot to hide spoilers sent.

About

Me and my friends were used to use a bot to send spoilers in the main group of anime discussions, but this bot doesn't works anymore. That's why I've decided to write my own version of this bot so we can continue to send each other messages without disturbing the others group members that haven't read manga chapter or watched the anime episode yet.

You can see how many spoilers have been sent so far here:

Spoilers sent

note: all of the spoilers are just stored for one week period!

Disclaimer

By default all the commands are in English, but you can see if the same command is available in your language:

How to use it

First of all, talk to @ispoilerbot.

note: urls are automatically shortened.

Sending Spoilers

Basically there are two kinds of spoiler, those of light weight, that won't ask the user to confirm to see it, and those of heavy weight, that will will ask permission to be displayed.

The inline mode works in any chat conversation:

@ispoilerbot spoiler to be sent here as text

Example:

@ispoilerbot L dies!

And you can also send a spoiler name it about what it is:

@ispoilerbot spoiler to be sent here as text "spoiler name"

Example:

@ispoilerbot L dies! "Death Note"

The heavy spoilers with:

And those lewd spoilers with -- I've added this option in a kind of future proofing if Apple changes it's policies again.

Help

If you have any other questions about it just use it the help command:

/help

How does it work?

You can build yourself a bot similar to this one, I've wrote a tutorial about it in my Podesearch Bot just follow the procedures listed in BUILDING.md.

Deployment

This bot is up and running at Heroku through the Github integration, that means that each new push to the master branch means that is the code serving the bot. You can see more about how does it run at the server by looking at the Procfile. You can also deploy yourself this bot into Heroku through:

Deploy

Testing

Since there's a Travis CI integration and Codecov. All of the tests were written with Jest.

To run all tests just:

npm test

All of the schedule implementations are not tested since they only works as a "timer" to do some actions other actions previously implemented. And those in stats also, since because those are files stats for the badge of spoilers sent.

If you ran into some errors related to package dependencies and want to know how to handle it, read the Security info.

Security

I've added a integration with Snyk to ensure that all of my dependencies have no bugs or errors reported without fixing it first before Continuos integration (CI) to ensure the Continuos Development (CD).

Errors/Bugs in Dependencies

When Snyk report some errors or bugs that can be fixed, just follow the CLI command to fix them before running -- more info at their docs.

Build with

Code

Plain and simple Typescript and the Microsoft linter standards for it.

Artwork

I've made all the artwork for it, Boku No Hero was my inspiration.


You can see more in the img folder.

Contributing

Please, I'm not a native/fluent english speaker, so whether you see a variable name wrote the wrong way or even some comment where I've wrote something with the wrong "past perfect way of life" or something like that, please let me know it. Not always is just about the code, but rather making it more clear to other people to learn from it.

So, whether is code or not you can help me out making this code more accessible by reading the CONTRIBUTING.md.

Versioning

I would love to say that SemVer or anything like that is used but, in my personal experience, this kind of approach doesn't work very well with me, the guy who could be committing in this project for two weeks in a roll and leave it for almost one year with no simple npm update. So, no versioning system is used.

TODO

Since I will be keeping this README up to date with any major change and I don't use any versioning system to log all the fixed bugs or previous projects updates, you can still have a taste of what comes next and what is being under analysis right in the Projects tab.

Authors

  • Only me for now.

Consider buy me a coffee:

Buy Me a Coffee

Or even becoming a patron:

Patreon

License

Like many Open-Source Software (OSS) the MIT license is used, more about it in LICENSE.