awesome_go_bot

package module
v0.0.0-...-ded2988 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Oct 11, 2023 License: MIT Imports: 14 Imported by: 0

README

Go Report Card

Awesome-Go Bot

Join the Telegram Bot

Description

Awesome-Go Bot is an interactive Telegram bot version of Awesome-Go, a curated list of awesome Go libraries, frameworks, and software. This bot provides a convenient way to explore and discover Go packages, with additional features like filtering by GitHub repository star count and retrieving top Go repositories.

Features
  1. Browse the Awesome-Go List: You can browse the extensive Awesome-Go list right within Telegram.

  2. Filter by Star Count: Easily filter the list based on the number of stars a GitHub repository has.

  3. Top Go Repositories: Get the top Go repositories ( sorted by stars ) by sending a message with "/top"

  4. Search by Keyword: You can search for packages using tags.

Sync

To ensure that the bot is up to date with the latest packages and their star counts, a Lambda service runs daily to synchronize data from the Awesome-Go website.

Stack

The Awesome-Go Bot is built using the following technologies:

  • Google Cloud Function: Used to host the bot's backend logic.

  • MongoDB: Stores data necessary for the bot's operation.

  • Webhook: Facilitates communication between the bot and Telegram users.

  • Telegram Bot API: The bot communicates with users via Telegram's API.

  • Go 1.21: The programming language used for building the bot's backend.

TODO

Here are some of the planned enhancements and features for the Awesome-Go Bot:

  • Search by Tags: You can search for packages using tags.

  • Meta Command: Fetch metadata, including the number of packages and the last updated time.

  • LRU Cache: Implement an LRU cache to reduce Google Cloud Function's cold boot time.

  • Inline Mode: Group multiple messages and fetch Golang articles from dev.to corresponding to package category/tag.

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func ExecuteCommand

func ExecuteCommand(incomingRequest *tgbotapi.Update) error

func HandleTelegramWebHook

func HandleTelegramWebHook(_ http.ResponseWriter, r *http.Request)

Types

This section is empty.

Directories

Path Synopsis
Package gobot will be responsible for creation of client and router that will handle the incoming requests
Package gobot will be responsible for creation of client and router that will handle the incoming requests
internal
parser module

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL