Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/tonicpow/twetch-bot

TonicPow's official bot for posting on Twetch
https://github.com/tonicpow/twetch-bot

bot node rss tonicpow twetch

Last synced: about 1 month ago
JSON representation

TonicPow's official bot for posting on Twetch

Awesome Lists containing this project

README

        

# TonicPow: Twetch Bot

> The official TonicPow bot for posting on [Twetch](https://twetch.app)

[![last commit](https://img.shields.io/github/last-commit/tonicpow/twetch-bot.svg?style=flat&v=1)](https://github.com/tonicpow/twetch-bot/commits/master)
[![version](https://img.shields.io/github/release-pre/tonicpow/twetch-bot.svg?style=flat&v=1)](https://github.com/tonicpow/twetch-bot/releases)
[![Build Status](https://img.shields.io/github/workflow/status/tonicpow/twetch-bot/CodeQL?logo=github&v=5)](https://github.com/tonicpow/twetch-bot/actions)
[![Mergify Status](https://img.shields.io/endpoint.svg?url=https://gh.mergify.io/badges/tonicpow/twetch-bot&style=flat&v=5)](https://mergify.io)


[![Sponsor](https://img.shields.io/badge/sponsor-TonicPow-181717.svg?logo=github&style=flat&v=1)](https://github.com/sponsors/TonicPow)
[![slack](https://img.shields.io/badge/slack-tonicpow-orange.svg?style=flat&v=1)](https://atlantistic.slack.com/app_redirect?channel=tonicpow)


## Table of Contents

- [Installation](#installation)
- [Documentation](#documentation)
- [Examples & Tests](#examples--tests)
- [Maintainers](#maintainers)
- [Contributing](#contributing)
- [License](#license)


## Pre-Requisites

These are required for building and running the Typescript project:

```shell script
yarn global add tsc
yarn global add ts-node-dev
```

## Installation

#### Yarn

Install:

```shell script
yarn
```

Local development (watch):

```shell script
yarn dev
```

Build & run with:

```shell script
yarn prod
```

#### PM2

```shell script
pm2 start yarn --name api -- prod
```

#### Make

**twetch-bot** requires a [supported release of Node](https://nodejs.org/en/download/).

```shell script
make install
```

Run the bot with:

```shell script
make start
```


## Documentation

The bot will query `RSSURL` to check for new campaigns every X seconds as defined in the `refreshRate` parameter in the .env file.

If new campaigns are found, then the bot will automatically [twetch](https://twetch.app) those links with the `privateKey` configured in the .env file.

Once a `privateKey` is setup, upon starting the bot the signing address will be logged along with the message and signature necessary to configure in the [twetch account](https://twetch.app/developer).

The [client identifier](https://twetch.app/developer) should also be configured in the .env file to take advantage of 10% platform fee savings.

Environment Variables

Required environment variables:

- `TWETCH_CLIENT_ID` (twetch client id)
- `TWETCH_PK` (private key for twetch account)
- `TWETCH_REFRESH_RATE` (rate to refresh/fetch new rss)

### Features

- Consume the TonicPow RSS feed
- Auto post on new campaigns

Release Deployment

[goreleaser](https://github.com/goreleaser/goreleaser) for easy binary or library deployment to Github and can be installed via: `brew install goreleaser`.

The [.goreleaser.yml](.goreleaser.yml) file is used to configure [goreleaser](https://github.com/goreleaser/goreleaser).

Use `make release-snap` to create a snapshot version of the release, and finally `make release` to ship to production.

Makefile Commands

View all `makefile` commands

```shell script
make help
```

List of all current commands:

```text
audit Checks for vulnerabilities in dependencies
clean Remove previous builds and any test cache data
help Show all commands available
install Installs the dependencies for the package
lint Runs the standard-js lint tool
outdated Checks for outdated packages via npm
release Full production release (creates release in Github)
release-test Full production test release (everything except deploy)
release-snap Test the full release (build binaries)
start Starts running the bot
tag Generate a new tag and push (IE: tag version=0.0.0)
tag-remove Remove a tag if found (IE: tag-remove version=0.0.0)
tag-update Update an existing tag to current commit (IE: tag-update version=0.0.0)
update-releaser Update the goreleaser application
```


## Examples & Tests

Tests & examples coming soon!


## Maintainers

| [Josh](https://github.com/jdh7190) | [Satchmo](https://github.com/rohenaz) | [MrZ](https://github.com/mrz1836) |
|:-------------------------------------------------------------------------------------------------:|:----------------------------------------------------------------------------------------------------:|:------------------------------------------------------------------------------------------------:|
| [Josh](https://github.com/jdh7190) | [Satchmo](https://github.com/rohenaz) | [MrZ](https://github.com/mrz1836) |


## Contributing
View the [contributing guidelines](.github/CONTRIBUTING.md) and please follow the [code of conduct](.github/CODE_OF_CONDUCT.md).

### How can I help?
All kinds of contributions are welcome :raised_hands:!
The most basic way to show your support is to star :star2: the project, or to raise issues :speech_balloon:.
You can also support this project by [becoming a sponsor on GitHub](https://github.com/sponsors/tonicpow) :clap:
or by making a [**bitcoin donation**](https://tonicpow.com/?utm_source=github&utm_medium=sponsor-link&utm_campaign=twetch-bot&utm_term=twetch-bot&utm_content=twetch-bot) to ensure this journey continues indefinitely! :rocket:

[![Stars](https://img.shields.io/github/stars/tonicpow/twetch-bot?label=Please%20like%20us&style=social)](https://github.com/tonicpow/twetch-bot/stargazers)


## License

[![license](https://img.shields.io/badge/license-Open%20BSV-brightgreen.svg?style=flat)](/LICENSE)