Merge pull request 'master' (#42) from master into prod
Reviewed-on: #42
This commit is contained in:
		
							
								
								
									
										4
									
								
								.gitignore
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										4
									
								
								.gitignore
									
									
									
									
										vendored
									
									
								
							@@ -116,4 +116,6 @@ GitHub.sublime-settings
 | 
			
		||||
!.vscode/tasks.json
 | 
			
		||||
!.vscode/launch.json
 | 
			
		||||
!.vscode/extensions.json
 | 
			
		||||
.history
 | 
			
		||||
.history
 | 
			
		||||
 | 
			
		||||
*pb2*
 | 
			
		||||
 
 | 
			
		||||
@@ -1,51 +0,0 @@
 | 
			
		||||
stages:
 | 
			
		||||
  - build
 | 
			
		||||
  - deploy-dev
 | 
			
		||||
  - deploy-prod
 | 
			
		||||
 | 
			
		||||
build:
 | 
			
		||||
  stage: build
 | 
			
		||||
  tags:
 | 
			
		||||
    - dev
 | 
			
		||||
  before_script:
 | 
			
		||||
    - docker login -u mathwave -p $DOCKERHUB_PASSWORD
 | 
			
		||||
  script:
 | 
			
		||||
    - docker build -t mathwave/sprint-repo:pizda-bot .
 | 
			
		||||
 | 
			
		||||
push:
 | 
			
		||||
  stage: build
 | 
			
		||||
  tags:
 | 
			
		||||
    - dev
 | 
			
		||||
  before_script:
 | 
			
		||||
    - docker login -u mathwave -p $DOCKERHUB_PASSWORD
 | 
			
		||||
  script:
 | 
			
		||||
    - docker push mathwave/sprint-repo:pizda-bot
 | 
			
		||||
 | 
			
		||||
.deploy:
 | 
			
		||||
  before_script:
 | 
			
		||||
    - docker login -u mathwave -p $DOCKERHUB_PASSWORD
 | 
			
		||||
 | 
			
		||||
deploy-dev:
 | 
			
		||||
  extends:
 | 
			
		||||
    - .deploy
 | 
			
		||||
  stage: deploy-dev
 | 
			
		||||
  tags:
 | 
			
		||||
    - dev
 | 
			
		||||
  rules:
 | 
			
		||||
    - if: '$CI_COMMIT_BRANCH == "master"'
 | 
			
		||||
      when: on_success
 | 
			
		||||
    - when: manual
 | 
			
		||||
  script:
 | 
			
		||||
    - docker stack deploy --with-registry-auth -c ./.deploy/deploy-dev.yaml pizda-bot
 | 
			
		||||
 | 
			
		||||
deploy-prod:
 | 
			
		||||
  extends:
 | 
			
		||||
    - .deploy
 | 
			
		||||
  stage: deploy-prod
 | 
			
		||||
  tags:
 | 
			
		||||
    - prod
 | 
			
		||||
  only:
 | 
			
		||||
    - master
 | 
			
		||||
  when: manual
 | 
			
		||||
  script:
 | 
			
		||||
    - docker stack deploy --with-registry-auth -c ./.deploy/deploy-prod.yaml pizda-bot
 | 
			
		||||
@@ -2,7 +2,7 @@ from collections import defaultdict
 | 
			
		||||
 | 
			
		||||
from flask import Flask
 | 
			
		||||
 | 
			
		||||
from mongo import mongo
 | 
			
		||||
from utils.mongo import mongo
 | 
			
		||||
 | 
			
		||||
app = Flask(__name__)
 | 
			
		||||
 | 
			
		||||
@@ -1,3 +1,13 @@
 | 
			
		||||
class BaseDaemon:
 | 
			
		||||
import os
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
stage = os.getenv("STAGE", 'local')
 | 
			
		||||
if stage == 'local':
 | 
			
		||||
    QUEUES_URL = 'localhost:50051'
 | 
			
		||||
else:
 | 
			
		||||
    QUEUES_URL = 'queues-grpc:50051'
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
class Daemon:
 | 
			
		||||
    def execute(self):
 | 
			
		||||
        raise NotImplementedError
 | 
			
		||||
        raise NotImplemented
 | 
			
		||||
 
 | 
			
		||||
@@ -2,7 +2,7 @@ import datetime
 | 
			
		||||
import random
 | 
			
		||||
from time import sleep
 | 
			
		||||
 | 
			
		||||
from mongo import mongo
 | 
			
		||||
from utils.mongo import mongo
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
def update():
 | 
			
		||||
@@ -6,9 +6,9 @@ from utils import queues
 | 
			
		||||
from telebot.types import Message
 | 
			
		||||
import json
 | 
			
		||||
 | 
			
		||||
from mongo import mongo
 | 
			
		||||
from sprint_platform import PlatformClient
 | 
			
		||||
from storage import set_values, get_chat_info
 | 
			
		||||
from utils.mongo import mongo
 | 
			
		||||
from utils.sprint_platform import PlatformClient
 | 
			
		||||
from utils.storage import set_values, get_chat_info
 | 
			
		||||
 | 
			
		||||
security_token = os.getenv("PLATFORM_SECURITY_TOKEN")
 | 
			
		||||
stage = os.getenv("STAGE", 'local')
 | 
			
		||||
@@ -39,7 +39,7 @@ def get_replies():
 | 
			
		||||
    return client.get_config('replies')
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
class Daemon(base.BaseDaemon, queues.TasksHandlerMixin):
 | 
			
		||||
class Daemon(base.Daemon, queues.TasksHandlerMixin):
 | 
			
		||||
    @property
 | 
			
		||||
    def queue_name(self):
 | 
			
		||||
        return 'pizda_bot_worker'
 | 
			
		||||
 
 | 
			
		||||
@@ -1,5 +0,0 @@
 | 
			
		||||
{
 | 
			
		||||
    "configs": {},
 | 
			
		||||
    "experiments": {},
 | 
			
		||||
    "platform_staff": {}
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										2
									
								
								main.py
									
									
									
									
									
								
							
							
						
						
									
										2
									
								
								main.py
									
									
									
									
									
								
							@@ -6,7 +6,7 @@ if arg == 'worker':
 | 
			
		||||
    from daemons import worker
 | 
			
		||||
    daemon = worker.Daemon()
 | 
			
		||||
else:
 | 
			
		||||
    from api import app
 | 
			
		||||
    from daemons.api import app
 | 
			
		||||
    app.run(host="0.0.0.0", port=1238)
 | 
			
		||||
 | 
			
		||||
daemon.execute()
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										10
									
								
								settings.py
									
									
									
									
									
								
							
							
						
						
									
										10
									
								
								settings.py
									
									
									
									
									
								
							@@ -1,10 +0,0 @@
 | 
			
		||||
import os
 | 
			
		||||
import sys
 | 
			
		||||
import zoneinfo
 | 
			
		||||
 | 
			
		||||
MONGO_USER = os.getenv("MONGO_USER", "mongo")
 | 
			
		||||
MONGO_PASSWORD = os.getenv("MONGO_PASSWORD", "password")
 | 
			
		||||
MONGO_HOST = os.getenv("MONGO_HOST", "localhost")
 | 
			
		||||
 | 
			
		||||
CACHE_SIZE = int(os.getenv("CACHE_SIZE", 1000))
 | 
			
		||||
CACHE_TTL = int(os.getenv("CACHE_TTL", 3600))
 | 
			
		||||
@@ -1,10 +1,14 @@
 | 
			
		||||
import pymongo
 | 
			
		||||
import settings
 | 
			
		||||
import os
 | 
			
		||||
 | 
			
		||||
MONGO_USER = os.getenv("MONGO_USER", "mongo")
 | 
			
		||||
MONGO_PASSWORD = os.getenv("MONGO_PASSWORD", "password")
 | 
			
		||||
MONGO_HOST = os.getenv("MONGO_HOST", "localhost")
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
class Mongo:
 | 
			
		||||
    def __init__(self):
 | 
			
		||||
        url = f"mongodb://{settings.MONGO_USER}:{settings.MONGO_PASSWORD}@{settings.MONGO_HOST}:27017/"
 | 
			
		||||
        url = f"mongodb://{MONGO_USER}:{MONGO_PASSWORD}@{MONGO_HOST}:27017/"
 | 
			
		||||
        self.client = pymongo.MongoClient(url)
 | 
			
		||||
        self.database = self.client.get_database("pizda-bot")
 | 
			
		||||
        self.chats_collection.create_index([
 | 
			
		||||
@@ -1,4 +1,3 @@
 | 
			
		||||
import json
 | 
			
		||||
import os
 | 
			
		||||
import requests
 | 
			
		||||
import time
 | 
			
		||||
 
 | 
			
		||||
@@ -1,9 +1,12 @@
 | 
			
		||||
from cachetools import TTLCache
 | 
			
		||||
import os
 | 
			
		||||
 | 
			
		||||
import settings
 | 
			
		||||
from mongo import mongo
 | 
			
		||||
from utils.mongo import mongo
 | 
			
		||||
 | 
			
		||||
cache = TTLCache(settings.CACHE_SIZE, settings.CACHE_TTL)
 | 
			
		||||
CACHE_SIZE = int(os.getenv("CACHE_SIZE", 1000))
 | 
			
		||||
CACHE_TTL = int(os.getenv("CACHE_TTL", 3600))
 | 
			
		||||
 | 
			
		||||
cache = TTLCache(CACHE_SIZE, CACHE_TTL)
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
def get_chat_info(chat_id: int) -> dict:
 | 
			
		||||
		Reference in New Issue
	
	Block a user