Bot Discordowy, który pobiera najnowsze wiadomości z NewsData.io i umożliwia ich redakcję za pomocą AI (Google Gemini). Użytkownicy mogą także zapisywać ulubione artykuły i przeglądać je później.
!news <temat>– Wyszukaj najnowsze wiadomości na dany temat (domyślnie 3 artykuły)!news <temat> [liczba]– Wyszukaj określoną liczbę wiadomości (1–10) na dany temat!news redaguj <temat>– Pobierz wiadomości i zredaguj ich treść za pomocą AI!news redaguj <numer>– Zredaguj wiadomość z ostatnio wyświetlonych wyników!news dodaj <numer>– Dodaj wskazaną wiadomość z listy do ulubionych!news usun <numer>– Usuń wskazaną wiadomość z listy ulubionych!news ulubione– Zobacz swoje zapisane ulubione wiadomości
-
Sklonuj repozytorium
git clone https://github.com/Kvmyk/Newser.git cd Newser -
Utwórz plik
.envw katalogunewser-botz taką zawartością, albo skorzystaj z pliku.env-templatedostępnego w repozytorium:DISCORD_TOKEN=twoj_token_z_discorda NEWSDATA_API_KEY=twoj_klucz_z_newsdata.io GOOGLE_API_KEY=twoj_klucz_z_google_generative_ai
-
Zainstaluj zależności
pip install -r requirements.txt
-
Uruchom bota
python newser.py
W projekcie znajduje się plik .env-template, który możesz wykorzystać jako wzór do stworzenia własnego pliku .env. Plik ten zawiera wszystkie wymagane zmienne środowiskowe, które należy uzupełnić przed uruchomieniem bota.
- Skopiuj plik
.env-templatei zmień jego nazwę na.env:cp .env-template .env
- Uzupełnij wartości zmiennych w pliku .env:
DISCORD_TOKEN=twój_token_z_discorda NEWSDATA_API_KEY=twój_klucz_z_newsdata.io GOOGLE_API_KEY=twój_klucz_z_google_generative_ai - Upewnij się, że plik .env znajduje się w katalogu głównym projektu.
Plik requirements.txt powinien zawierać:
discord.py>=2.3.2
requests>=2.31.0
python-dotenv>=1.0.1
google-generativeai>=0.3.2
anyio
pytest-asyncio
pytest-trio
pytest-twisted
Jeśli chcesz uruchomić projekt w kontenerze Docker, wykonaj poniższe kroki:
- Zbuduj obraz Dockera:
docker build -t newser-bot . - Uruchom kontener:
docker run --env-file .env -d --name newser-container newser-bot
Projekt zawiera skonfigurowany plik azure-pipelines.yml, który umożliwia automatyzację procesów CI/CD. Dzięki temu możesz:
-
Uruchamiać testy jednostkowe i sprawdzać formatowanie kodu:
- Testy są uruchamiane za pomocą
pytest. - Formatowanie kodu jest sprawdzane za pomocą
black.
- Testy są uruchamiane za pomocą
-
Budować obraz Dockera:
- Obraz Dockera jest tworzony i oznaczany unikalnym tagiem.
-
Publikować obraz Dockera:
- Obraz jest przesyłany do zarejestrowanego rejestru kontenerów (np. Docker Hub).
-
Wdrażać aplikację:
- Kontener Dockera jest uruchamiany na podstawie obrazu z rejestru.
- Możesz wybrać operację wdrożenia:
Install,Uninstall,Reinstall.
-
Dodaj plik
azure-pipelines.ymldo repozytorium: Plik znajduje się już w katalogu projektu i jest gotowy do użycia. -
Skonfiguruj zmienne środowiskowe w Azure Pipelines:
DISCORD_TOKEN: Twój token bota Discord.NEWSDATA_API_KEY: Klucz API z NewsData.io.GOOGLE_API_KEY: Klucz API z Google Generative AI.
-
Uruchom pipeline:
- Pipeline automatycznie uruchomi się na gałęziach
mainidevelop.
- Pipeline automatycznie uruchomi się na gałęziach
-
Monitoruj wyniki:
- Wyniki testów i procesów budowania są dostępne w Azure DevOps.
- NewsData.io – agregator wiadomości z całego świata
- Google Gemini (Generative AI) – do redagowania wiadomości przez AI
- Dane ulubionych wiadomości i ostatnich wyników są przechowywane w bazie danych
MIT © 2025 — Jakub Kamionka
