123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140 |
- # -*- encoding: utf-8 -*-
- #
- import os, json, sys, subprocess, urllib.parse, traceback
- import random, time, datetime, re
- from urllib.parse import unquote
- virtual_env = os.path.expanduser('~/projects/world-it-planet/env')
- activate_this = os.path.join(virtual_env, 'bin/activate_this.py')
- exec(open(activate_this).read(), dict(__file__=activate_this))
- import requests
- #MySql
- from mysql.connector import connect, Error
- #декларативное определение SQLLite
- from sqlalchemy import Column, Integer, String, Text, create_engine
- from sqlalchemy.ext.declarative import declarative_base
- from sqlalchemy.orm import sessionmaker
- from sqlalchemy import desc
- #---------------------------------- Variables ----------
- #---------------------------------- Variables End ----------
- def application(env, start_response):
- out_s = {}
- """
- for key in env:
- out_s = out_s + str(key) + "=" + str(env[key]) + "<br>"
- """
- #получаем $_GET из запроса
- get_query = env['QUERY_STRING']
- get_json = get_query.replace("q=", "")
- get_json = unquote(get_json)
- get_dict = json.loads(get_json)
- tm_id = str(get_dict['tm_id'])
- vk_id = str(get_dict['vk_id'])
- out_s["tm_id"] = tm_id
-
- #Инициализация MySQL
- mysql_connection = connect(
- host="localhost",
- user="id35114350",
- password="Hgatrdy5rTeq",
- database="id35114350_steelfeet",
- charset='utf8',
- use_unicode=True
- )
- #Инициализация SQLLite
- basedir = os.path.abspath(os.path.dirname(__file__))
- SQLALCHEMY_DATABASE_URI = 'sqlite:///' + os.path.join(basedir, 'habr.db')
- engine = create_engine(SQLALCHEMY_DATABASE_URI, pool_pre_ping=True)
- Base = declarative_base()
- class Links(Base):
- __tablename__ = 'links'
- id = Column(Integer, primary_key=True, autoincrement=True)
- title = Column(String(512))
- href = Column(String(512))
- donor = Column(String(255))
- donor_link_id = Column(Integer) #внутренний идентификатор для донора, https://habr.com/ru/company/skillfactory/blog/578014/ -> 578014
- parse_date = Column(Integer)
- text = Column(Text)
- def __init__(self, title, href, donor, donor_link_id, parse_date, text):
- self.title = title
- self.href = href
- self.donor = donor
- self.donor_link_id = donor_link_id
- self.parse_date = parse_date
- self.text = text
- def __repr__(self):
- return "<Link('%s', '%s')>" % (self.title, self.href)
- Session = sessionmaker(bind=engine)
- sqllite_session = Session()
- #------------------------------------------ Основной цикл ------------------
- #запрос wp_id по внешнему сервису
- params = {
- "action":"show_wp_id",
- "tm_id":tm_id
- }
- params_json = json.dumps(params)
- get_wp_url = "https://steelfeet.ru/app/get.php?q=" + params_json
- out_s["get_wp_url"] = get_wp_url
- response = requests.get(get_wp_url)
- wp_id = int(response.text)
- out_s["wp_id"] = wp_id
- """
- now = datetime.datetime.now()
- showed_read = get_dict["showed_read"]
- for item in showed_read:
- #добавляем показанные вакансии в лог
- #INSERT INTO `sf_log` (`user_id`, `date`, `hour`, `action`, `data_1`, `data_2`, `data_3`, `data_4`, `data`, `weight`) VALUES ('', '', '', '', '', '', '', '', '', '');
- exist_vacancies_query = "SELECT `id` FROM `sf_log` WHERE (`code` = 'read') AND (`data_1` = " + str(item["id"]) + ") AND (`action` = 'show_next') AND (`user_id` = " + str(wp_id) + ") ;"
- with mysql_connection.cursor(buffered=True) as cursor:
- cursor.execute(exist_vacancies_query)
- exist_vacancies = cursor.fetchall()
- out_s["exist_vacancies_query"] = exist_vacancies_query
- if (len(exist_vacancies) == 0):
- mysql_query = "INSERT INTO `sf_log` (`user_id`, `date`, `hour`, `code`, `action`, `data_1`, `data_2`, `data_3`, `data_4`, `data`, `weight`) VALUES ('" + str(wp_id) + "', '" + str(int(time.time())) + "', '" + str(now.hour) + "', 'read', 'show_next', '" + str(item["id"]) + "', '', '" + str(item["title"]) + "', '', 'data_1=>read_id, data_3=>read_title', '');"
-
- with mysql_connection.cursor() as cursor:
- cursor.execute(mysql_query)
- mysql_connection.commit()
- """
- mysql_query = "UPDATE `sf_log` SET `action` = 'show_next' WHERE `user_id` = '" + str(wp_id) + "' AND `code` = 'read';"
- with mysql_connection.cursor() as cursor:
- cursor.execute(mysql_query)
- mysql_connection.commit()
- start_response('200 OK', [('Content-Type','text/html')])
- out_s = json.dumps(out_s)
- b = out_s.encode('utf-8')
- return [b]
|