예제 #1
0
 def __init__(self, vk_session, event, keyboard):
     self.db = DataBase(data.database['host'], data.database['username'],
                        data.database['password'],
                        data.database['database'], data.database['port'])
     self.vk_api = vk_session
     self.event = event
     self.cursor, self.connection = self.db.connect()
     self.keyboard = keyboard
예제 #2
0
def returnPrediction(nameCompany):

    ticker = companyTicker[nameCompany]
    database = DataBase()
    toreturn = {}
    toreturn['prediction'] = database.getPredictedClose(ticker)

    return toreturn
예제 #3
0
 def run(self):
     connection = DataBase().connection()
     cursor = connection.cursor()
     cursor.execute("truncate collections.bms_showtimes")
     connection.commit()
     print DataBase().showtimesCountQuery
     cursor.execute(DataBase().showtimesCountQuery)
     count = cursor.fetchall()
     count = count[0][0]
     limit = 1
     start = 1
     stop = 2000
     loopCount = 2000
     try:
         limit = count / loopCount
     except:
         limit = 15
         pass
     for i in range(0, limit + 1):
         t = threading.Thread(target=self.bms_showtime_count,
                              args=("thread_name_" + str(i), start, stop))
         t.start()
         start = stop + 1
         stop = start + loopCount - 1
     try:
         connection.close()
         print "Initial Connection Closed"
     except:
         print "Initial connection Not closed"
예제 #4
0
 def run(self):
     connection = DataBase().connection()
     cursor = connection.cursor()
     cursor.execute(DataBase().trunk_ticket_info)
     connection.commit()
     cursor.execute(DataBase().ssidcountquery)
     count = cursor.fetchall()
     count = count[0][0]
     print "data==", count
     limit = 1
     start = 0
     stop = 100
     loopCount = 100
     try:
         limit = count / loopCount
     except:
         limit = 15
         pass
     print "no of threads==", limit + 1
     for i in range(0, limit + 1):
         t = threading.Thread(target=self.bms_ssid_count,
                              args=("thread_name_" + str(i), start, stop))
         t.start()
         start = start + 100
         stop = 100
     try:
         connection.close()
         print "Initial Connection Closed"
     except:
         print "Initial connection Not closed"
예제 #5
0
    def test_general_search_works(self, mock_new_books):
        with mock.patch.object(DataBase.Database, "__init__",
                               lambda x: None) as mock_db:
            mock_new_books.find.return_value = []

            self.assertEqual(DataBase.Database().general_search({}), ([], 200))

        self.assertEqual(DataBase.Database().general_search("socorro"),
                         ('filter must be an instance of dict, '
                          'bson.son.SON, or any other type that '
                          'inherits from collections.Mapping', 500))
예제 #6
0
 def run(self):
     connection = DataBase().connection()
     cursor = connection.cursor()
     # cursor.execute("truncate moviesfyi_stage.bk_movies")
     connection.commit()
     cursor.execute(DataBase().showtimesCountQuery)
     count = cursor.fetchall()
     count = count[0][0]
     print "data==", count
     limit = 1
     start = 1
     stop = 300
     loopCount = 300
     try:
         limit = count / loopCount
     except:
         limit = 15
         pass
     print "no of threads==", limit + 1
     for i in range(0, limit + 1):
         t = threading.Thread(target=self.bms_movie_count,
                              args=("thread_name_" + str(i), start, stop))
         t.start()
         start = stop + 1
         stop = start + loopCount - 1
     try:
         connection.close()
         print "Initial Connection Closed"
     except:
         print "Initial connection Not closed"
예제 #7
0
def books_by_rating():
    """
    A função é chamada na página inicial do front-end quando acessado o site.
    :return: tuple, response com a lista de livros ordenada pelas avaliações (estrelas)
    """
    response = DataBase.Database().books_by_rating()
    return Controller.search.data_treatment(response)
예제 #8
0
 def test_search_by_id_works(self, mock_new_books, mock_conn):
     with mock.patch.object(DataBase.Database, "__init__",
                            lambda x: None) as mock_db:
         mock_new_books.find.return_value = []
         self.assertEqual(
             DataBase.Database().search_by_id("609ec0b6d2334d102f6561bb"),
             ([], 200))
예제 #9
0
 def save_movie(self, nombre: Movie): # ----> Busca una película
 
     movie_new = APIMovie().getMovie(nombre)
     #if movie_new == None:
     #print("No existe")
     #else:
     DataBase().saveMovie(movie_new) #Guardar en la base de datos
예제 #10
0
 def search_movie(self, name:str): # ----> Busca una película y pregunta si quiere guardar
     #movie_new = APIMovie().getMovie(name)
     movie_titles = APIMovie().get_movie_titles(name)
     if movie_titles == None:
         print("No se encontro la informacion")
     else:
         print("Se encontraon los siguientes resultados: \n")
         
         for i in range(len(movie_titles)):
             print(movie_titles[i])
         n = False
         while n == False:
             print("¡¡Mi loco!!, escoge el nombre de una película y vuelve a hacer la busqueda sí quieres guardarla :D\n") 
             op =  int(input("Teclea 1 para hacer la busqueda de nuevo y guardarla Ó teclea 2 para regresar al menu:\n"))
             if op == 1:
                 new_name = str(input("Cual fue la película que escogiste? \n"))
                 new_search = APIMovie().getMovie(new_name) #Se crea el objeto con la película nueva
                 DataBase().saveMovie(new_search) #Guardar en la base de datos
                 print("Pelicula guardada, hasta luego :D")
                 n = True
                 
             elif op == 2:
                 n = True
                 #print("Al menu")
             else:
                 print("Elige una opcion del menu")
예제 #11
0
def books_by_released():
    """
    A função é chamada na página inicial do front-end quando acessado o site.
    :return: tuple, response com a lista de livros ordenada pela data de publicação.
    """
    response = DataBase.Database().latest_books_released()
    return Controller.search.data_treatment(response)
예제 #12
0
def books_by_string_search():
    """
    A função recebe do front-end uma string digitada pelo usuário e realiza a busca no db.
    :return: tuple, response com a lista de livros que contém a busca digitada no front-end
    """
    string_search = request.args['search']
    log_for_search.generate_log_from_search_engine(
        {"string_search": string_search})
    response = DataBase.Database().books_by_string_search(string_search)
    return Controller.search.data_treatment(response)
예제 #13
0
 def ticketsinfo(self, starts, stops):
     connection = DataBase().connection()
     cursor = connection.cursor()
     date = datetime.date.today()
     date = str(date)
     date = date.replace("-", "")
     query = ""
     # print date
     seats_ssid = "SELECT theater_code ,showdate,showtime,sessionid FROM collections.bms_showtimes where showdate =CURDATE() AND STR_TO_DATE(showtime,'%l:%i %p') BETWEEN SUBTIME(ADDTIME(current_time(),'5:30:00.00'),5900) AND  ADDTIME(ADDTIME(current_time(),'5:30:00.00'),5900) group by sessionid limit " + str(
         starts) + " , " + str(stops)
     print seats_ssid
     cursor.execute(seats_ssid)
     results = cursor.fetchall()
     # print "length======================================================================================",len(results)
     for j in results:
         print j[0]
         url = "https://in.bookmyshow.com/serv/getData?cmd=GETSHOWINFO&vid=" + j[
             0] + "&ssid=" + str(j[3])
         print url
         r = requests.get(url)
         data = r.text
         val = ""
         myjson = json.loads(data.replace("arrShowInfo=", "")[:-1])
         # print "length==",len(myjson)
         for mjson in range(len(myjson)):
             try:
                 tid = myjson[mjson][0]
                 ssid = myjson[mjson][1]
                 tc_class = myjson[mjson][2]
                 t_class = myjson[mjson][3]
                 price = myjson[mjson][4]
                 screen_name = myjson[mjson][33]
                 m = myjson[mjson].index(date)
                 l = myjson[mjson][m:]
                 totalseats = l[2]
                 availableseats = l[3]
                 val = val + "('" + tid + "','" + screen_name + "'," + "'" + ssid + "'," + "'" + tc_class + "'," + "'" + t_class + "'," + "'" + price + "'," + "'" + totalseats + "'," + "'" + availableseats + "'),"
             except:
                 "DNA"
         val = val[:-1]
         query = DataBase().seats_info + val
         # print query
         try:
             cursor.execute(query)
             connection.commit()
             if cursor.lastrowid:
                 print('last insert id', cursor.lastrowid)
             else:
                 print('last insert id not found')
                 connection.commit()
         except:
             print query
예제 #14
0
 def show_all_movies(self): # ----> Muestra todas las películas guardadas en la BDD
      
     moviesList = DataBase().showAllMovies()
     #if moviesList == "" or moviesList == None:
     #    print("Aún no hay datos guardados")
     #else:
     #print("Películas guardadas: \n")
     #for item in moviesList:
     #    print(item)
     #    print("\n")
     print( moviesList)
예제 #15
0
 def show_a_movie(self, name:str):  # ----> Muestra una película que esta guardada en la BDD
     
     moviesList = DataBase().showMovie(name)
     #if  moviesList == "" or moviesList == None: #if name Not in movielist
     #    print("No existe esta película en la base de datos :(\n")
     #else:
         #print("Película encontrada: \n")
     #for item in moviesList:
     #    print(item)
     #    print("\n")
     print(moviesList)
예제 #16
0
 def getBmsShowTimes(self, starts, stops):
     connection = DataBase().connection()
     cursor = connection.cursor()
     sql = "SELECT id,theater_url from collections.bms_theaters where theater_url is not null and id between " + str(
         starts) + " and " + str(stops)
     cursor.execute(sql)
     results = cursor.fetchall()
     date = datetime.date.today()
     date = str(date)
     date = date.replace("-", "")
     movies_ins = ""
     count = 0
     for j in results:
         testurl = j[1]
         url = j[1]
         da = "https://in.bookmyshow.com"
         url = da + url
         r = requests.get(url)
         data = r.text
         soup = BeautifulSoup(data)
         query = ""
         list = ""
         for list in soup.find_all('a', href="javascript:;"):
             try:
                 list = list['onclick']
                 if ("blnVistaCine" in list):
                     list = list
                     list = list.split("callSeatLayout(")
                     teatinfo = list[1].split(")")
                     teatinfo = teatinfo[0].split(",")
                     theater_code = teatinfo[0]
                     sessionid = teatinfo[1]
                     movie_code = teatinfo[2]
                     showtime = teatinfo[3]
                     date = date
                     query = query + "(" + movie_code + ",''," + theater_code + ",''," + "'y','" + date + "'," + showtime + "," + "'y'," + sessionid + "),"
             except:
                 ""
         query = query[:-1]
         insquery = DataBase().show_time_ssid + query
         try:
             cursor.execute(insquery)
             connection.commit()
         except:
             ""
     connection.close()
예제 #17
0
def generate_log_from_search_engine(filters: dict):
    """
    A função recebe os itens pesquisados e registra no log de buscas
    :param filters: itens pesquisados pelo usuário
    :return: True
    """
    search = filters.copy()
    try:
        search["user_id"] = filters["user_id"]
        search["created_at"] = datetime.now()
    except:
        search["created_at"] = datetime.now()

    execute = DataBase.Database().search_history.insert_one(search)
    if execute.inserted_id:
        return True
예제 #18
0
class MyTest(unittest.TestCase):
    myScraper = Scraper()
    myDb = DataBase('avatar.db')
    collectordb = CollectorDB('collector.db')
    imageCorrection = ImageCorrection()
    edge_detection = EdgeDetection()
    image_warper = ImageWarper()
    image_hasher = ImageHasher()
    test_image = cv2.imread("warped.jpg")
    second_test = cv2.imread("ow.jpg")

    def test(self):
        # test collector string
        self.assertEqual(self.collectordb.check_game("Grand Theft Auto V"),
                         "Grand Theft Auto V")
        # second test
        self.assertNotEqual(self.collectordb.check_game("Grand Theft Auto V"),
                            "Tekken 7")

        # checking hamming distance calculation
        self.assertEqual(
            self.myDb.ham_dst("2d2ec9e064603833", "2d2ec9e064603833"), 0)
        self.assertEqual(
            self.myDb.ham_dst("2d2bf9e56460f833", "2d2ec9e064603836"), 5)

        # no two images should have same hash
        self.assertEqual(self.image_hasher.generate_hash(self.test_image),
                         "2f6c71b19336322a")
        self.assertNotEqual(self.image_hasher.generate_hash(self.second_test),
                            "2f6c71b19336322a")

        # retrieving from db should always be a list
        self.assertIsInstance(self.myDb.fetch_hash("2d2ec9e064603836"), list)
        # cv2 should return images
        self.assertIsInstance(self.edge_detection.canny_edge(self.second_test),
                              np.ndarray)

        self.assertTrue(
            self.myDb.ham_dst("9897f4b0f0cc0ef8", "dd9237b0704c4ed9"))
예제 #19
0
def get_all_searches():
    response = DataBase.Database().get_history_searches()
    return Controller.search.data_treatment(response)
예제 #20
0
    def delete_movie(self, name):  # ----> Borra una película que esta guardada en la BDD by ID

        moviesList = DataBase().deleteMovie(name)
예제 #21
0
__author__ = 'Q'


from Database import DataBase



db = DataBase("summer2014courses.db")

print("-------------Assignments---------------------")
db.display_table_by_date("Assignments")

print("-------------Readings------------------------")
db.display_table_by_date("Readings")

print("-------------Tests------------------------")
db.display_table_by_date("Tests")

db.close()
예제 #22
0
from pony.orm import *
from Database import DataBase

db = DataBase.get_database()


class City(db.Entity):
    id = PrimaryKey(int, auto=True)
    city_id = Required(int)
    name = Required(str)
    weather = Set("Weather")

    # ---- Query
    @staticmethod
    @db_session
    def get_all():
        return select(p for p in City)[:]

    @staticmethod
    @db_session
    def get_by_id(city_id):
        city = select(c for c in City if c.city_id == city_id)[:][0]
        return city

    @staticmethod
    @db_session
    def get_by_name(name):
        city = select(c for c in City if c.name == name)[:][0]
        return city

    @staticmethod
예제 #23
0
from Database import DataBase
import numpy
import datetime

try:
    id_log = DataBase.callFunction('get_max_id_log')
    if id_log[0][0] == None:
        id_log = [[0]]
    id_res = DataBase.callFunction('get_max_id_slau')
    if id_res[0][0] == None:
        id_res = [[0]]
    max_id = max(id_res[0][0], id_log[0][0]) + 1
except Exception as error:
    print(f'Error of calling database procedure: {error}!')
    exit(1)

print('Enter file name: ', end='')
FileName = input()

try:
    file = open(FileName, 'r')
except BaseException:
    print(f'Error opening file {FileName}!')
    exit(1)

matrix = []
for line in file:
    tm_line = line.split(' ')
    tm_arr = []
    for item in tm_line:
        if not item.isspace() and (item != ''):
예제 #24
0
# The script is supposed to be run by daemon to collect the weather data for the city

from ApiClient import ApiClient
from config import CONFIG
from Database import DataBase
from models.City import City
from models.Weather import Weather
from utils import unix_to_datetime
import json

db = DataBase()
db.generate()


def request_weather(city):
    apiClienet = ApiClient(CONFIG['appid'], city.city_id)
    response = apiClienet.weather()
    response = json.loads(response.text)

    # Save weather to DB if entry for this time does not exist
    if len(Weather.get_by_unix(response['dt'])) == 0:
        weather_entry = Weather.save(city_id=city.city_id,
                                     desc=response['weather'][0]['main'],
                                     temp_max=response['main']['temp_max'],
                                     temp_min=response['main']['temp_min'],
                                     pressure=response['main']['pressure'],
                                     humidity=response['main']['humidity'],
                                     visibility=response['visibility'],
                                     wind_speed=response['wind']['speed'],
                                     dt=response['dt'])
        print("Entry for time {} added successfully".format(
예제 #25
0
                    cv2.waitKey(0)
                elif name is not "":
                    myScraper.scrape_game(search_query, name)
    except IndexError:
        font = cv2.FONT_HERSHEY_COMPLEX
        colour = (0, 0, 0)
        cv2.putText(frame, 'No game found ', (9, 28), font, 0.55, colour, 2,
                    cv2.LINE_AA)


if __name__ == '__main__':

    # initiate web scraping object
    myScraper = Scraper()
    # avatar database access object
    myDb = DataBase('avatar.db')
    # collector database object
    collectordb = CollectorDB('collector.db')
    # image correction object
    imageCorrection = ImageCorrection()
    # edge detection object
    edge_detection = EdgeDetection()
    # image warping object
    image_warper = ImageWarper()
    # image hashing object
    image_hasher = ImageHasher()
    # root for Tk object
    root = Tk()
    topframe = Frame(root)
    topLabel = Label(root, text="What would you like to do?")
    topLabel.grid(row=0, column=0)
예제 #26
0
class commands_scripts:
    def __init__(self, vk_session, event, keyboard):
        self.db = DataBase(data.database['host'], data.database['username'],
                           data.database['password'],
                           data.database['database'], data.database['port'])
        self.vk_api = vk_session
        self.event = event
        self.cursor, self.connection = self.db.connect()
        self.keyboard = keyboard

    def __send_message(self, message, event, user_id):
        self.vk_api.messages.send(peer_id=event.obj.message['from_id'],
                                  user_id=user_id,
                                  random_id=get_random_id(),
                                  message=message,
                                  keyboard=self.keyboard)

    def abort(self, user_id):
        self.db.set_user_state(user_id, 0)
        self.__send_message("Я тебя понял, уже отменяю!", self.event, user_id)
        if not self.db.get_user_city(user_id):
            self.cursor.execute("""UPDATE `user_info`
                              SET UserCity=NULL, UserRegion=NULL
                              WHERE UserID={}""".format(user_id))
            self.connection.commit()

    def add_city(self, user_id):
        self.db.set_user_state(user_id, 1)
        self.__send_message("Пожалуйста, введи свой город.", self.event,
                            user_id)

    def city_info(self, user_id):
        city_info = self.db.get_user_city(user_id)
        if city_info:
            self.__send_message(
                "Город: {}\nРегион: {}".format(city_info[0], city_info[1]),
                self.event, user_id)
        else:
            self.__send_message(
                "Ты еще не ввёл свой город. Нажми на кнопку \"Добавить город\"",
                self.event, user_id)

    def clear_keyboard(self, user_id):
        self.__send_message("Клавиатура очищена", self.event, user_id)

    def help(self, user_id):
        self.__send_message(
            "Хочешь добавить город? Жми на кнопку \"Добавить Город\"\n"
            "Если ты это уже сделал, то кликни на кнопку \"Погода\"\n"
            "Ну, а есди ты вдруг забыл какой город ты ввёл, "
            "то спроси у меня, я с радостью тебе помогу, "
            "Для этого просто намекни мне нажав \"Мой город\" и я тебе обязательно отвечу. \n"
            "Если вдруг справка тебе не помогла, то смело @ferunelli(пиши сюда)",
            self.event, user_id)

    def hello(self, user_id, user_name):
        self.__send_message(
            "Привет, {}! \n"
            "Я рад, что ты со мной.".format(user_name), self.event, user_id)

    def input_city(self, user_id, message):
        if message == "отмена":
            self.abort(user_id)
        else:
            with self.cursor as cursor:
                cursor.execute("""UPDATE `user_info` 
                                  SET UserCity='{}' 
                                  WHERE UserID={}""".format(
                    message.capitalize(), user_id))
                self.connection.commit()
                self.__send_message(
                    "Пожалуйста, введи свой регион "
                    "(А чтобы мне было проще искать, регион должен быть в формате RU, UA, US и т.д.)",
                    self.event, user_id)
            self.db.set_user_state(user_id, 2)

    def input_region(self, user_id, message):
        if message == "отмена":
            self.abort(user_id)
        else:
            with self.cursor as cursor:
                check_weather = weather(self.db.get_user_city(user_id)[0],
                                        data.API,
                                        region=message)
                if check_weather.check():
                    cursor.execute("""UPDATE `user_info` 
                                      SET UserRegion='{}' 
                                      WHERE UserID={}""".format(
                        message.upper(), user_id))
                    self.connection.commit()
                    self.__send_message(
                        "Я запомнил, где ты живешь ;-) "
                        "Я с радостью расскажу тебе про погоду в твоём городе, если ты напишешь"
                        "\"Погода\"", self.event, user_id)
                    self.db.set_user_state(user_id, 0)
                else:
                    self.__send_message(
                        "К сожалению я не смог найти никаких городов с такими данными :-(\n"
                        "Попробуй ввести другие.", self.event, user_id)
                    cursor.execute("""UPDATE `user_info` 
                                      SET UserCity=NULL, UserRegion=NULL
                                      WHERE UserID={}""".format(user_id))
                    self.connection.commit()
                    self.db.set_user_state(user_id, 0)

    def start(self, user_id, user_name):
        state = self.db.add_user_to_bd(user_id, user_name)
        if state:
            self.__send_message(
                "Привет, {}, ты тут новенький!".format(user_name) +
                "Я умею показывать погоду в твоём городе."
                "Для начала введи команду \"Добавить Город\", чтобы я знал, какой город тебе интересен.",
                self.event, user_id)
        else:
            self.__send_message(
                "Если тебе нужна справка по командам, то введи \"Помощь\"\n"
                "Я с радостью тебе всё расскажу :-)", self.event, user_id)

    def weather(self, user_id):
        city_info = self.db.get_user_city(user_id)
        if city_info:
            current = weather(city_info[0], data.API, region=city_info[1])
            weather_now = current.get_weather_now()
            beginning = [
                "Что ж, готовься читать, я принес тебе много информации.\n Начнем с того, что",
                "В общем,", "Что ж,", "Итак, ",
                "Ну поехали, я набрал информацию и теперь готов тебе её доложить,"
            ]
            text = random.choice(beginning) + \
                   " максимум температура поднимется до {} градусов, " \
                   "в среднем будет где-то {}. Скорость ветра может быть около {} км/ч, " \
                   "а влажность будет в районе {}%. " \
                   "Будет {}. ".format(weather_now['temp_max'],
                                               (weather_now['temp'] + weather_now['temp_min']) / 2,
                                               weather_now['wind_speed'], weather_now['humidity'],
                                               weather_now['weather'])

            end = ""
            # Погода - температура
            if abs(weather_now['temp_max'] - weather_now['temp_min']) > 10:
                end = "Скачок между температурами будет немаленький, поэтому будь предусмотрительным и возьми с собой " \
                      "вещей и на ту и на другую температуру. "
            elif weather_now['temp_min'] < -10:
                end += "Сегодня очень холодно, оденься как можно теплее. "
            elif -10 <= weather_now['temp'] < 0:
                end += "Сегодня холодновато. Ухх. Без куртки никак не выйдешь. "
            elif 0 <= weather_now['temp'] <= 10:
                end += "Эх, я бы не сказал, что очень жарко, надо надеть куртку. Если что, снимешь. "
            elif 10 < weather_now['temp'] < 20:
                end += "В целом, тепло, но я бы посоветовал тебе что-то с собой прихватить. "
            elif weather_now['temp'] > 20:
                end += "Достаточно жарко, я бы пошел в футболке. "

            # Влажность
            if 35 < weather_now['humidity'] < 60:
                end += "Думаю, стоит сегодня взять зонт или хотя бы плащ. "
            elif weather_now['humidity'] > 60:
                end += "Не забудь взять с собой зонт. "
            elif 15 < weather_now['humidity'] < 35:
                end += "Вот даже не знаю, советовать ли тебе брать зонт." \
                       " В целом, вероятность дождя не такая уж и большая. "
            # Ветер
            if weather_now['wind_speed'] > 20:
                end += "Также сегодня будет сильный ветер, будь очень аккуратен"

            self.__send_message(text + end, self.event, user_id)
        else:
            self.__send_message(
                "К сожалению я ничего пока про тебя не знаю :-(\n"
                "Введи команду \"Добавить город\" и расскажи немного о себе.",
                self.event, user_id)
예제 #27
0
 def test_latest_books_released_works(self, mock_new_books):
     with mock.patch.object(DataBase.Database, "__init__",
                            lambda x: None) as mock_db:
         mock_new_books.find.return_value = []
         self.assertEqual(DataBase.Database().latest_books_released(),
                          ([], 200))
예제 #28
0
import ast
from Database import DataBase
from flask import jsonify

database = DataBase.Database()


def general_search(filters: dict) -> tuple:
    """
    Função que valida os dados enviados pelo front-end, conforme filtros selecionados, levando em consideração o formato
    das informações (dicionario(s), lista, string) e também se o preço foi filtrado ou não.
    :param filters: filtros selecionados pelo usuário
    :return: list, result com a lista de livros filtrados
    """
    if filters == {}:
        return [], 400

    price = ""
    query = ""

    try:
        filters['category']
        query = "{ '$and': [ { '$or': [ "


        for filter in filters:
            if isinstance(filters[filter], dict):
                if filter == "price":
                    price += "]} , { '$and' : [{" + "'item_price': { '$gte' :" + f"{filters[filter]['min']}" + "}}, " \
                            "{" + "'item_price': { '$lte' :" + f"{filters[filter]['max']}" + "}} ] }"
                else:
예제 #29
0
def selected_book():
    book_id = request.args["product_id"]
    response = DataBase.Database().search_by_id(book_id)
    return Controller.search.data_treatment(response)
예제 #30
0
import data
from Database import DataBase
from vk_server import vk_server
import vk_api
import pymysql

db = DataBase(data.database['host'], data.database['username'],
              data.database['password'], data.database['database'],
              data.database['port'])

while True:
    try:
        vk = vk_server(data.vk_token, data.bot_id, db)
        vk.start()
    except vk_api.exceptions.ApiError:
        print("Неверно указаны данные для работы Бота")
        break
    except pymysql.err.OperationalError:
        print("Неверно указаны данные для работы с БД")
        break
    except:
        continue

예제 #31
0
 def test_books_by_string_search_works(self, mock_new_books):
     with mock.patch.object(DataBase.Database, "__init__",
                            lambda x: None) as mock_db:
         mock_new_books.find.return_value = []
         self.assertEqual(
             DataBase.Database().books_by_string_search("Pedro"), ([], 200))