import requests
import time
import datetime
import pymysql
import random
import traceback
from log_settings import *
import logging
from auto_request import login, time_convs, follow, get_user_id
from auto_request import host, user, port, db, passwd


def get_topic_new_user(numtime1, numtime2):
    try:
        pc = pymysql.connect(host=host, user=user, passwd=passwd, db=db, port=3306)
        cursor = pc.cursor()
        cursor.execute(
            "SELECT  distinct(user_id) FROM topic WHERE is_online=1 and create_time  >  '%s' " % numtime1)
        topic_data = cursor.fetchall()

        cursor.execute(
            "SELECT  distinct(user_id)  FROM group_user_role  WHERE  create_time > '%s'" % numtime1)
        new_user_data = cursor.fetchall()
        topic_data = list(topic_data)
        new_user_data = list(new_user_data)

        topic_id_list = []
        if topic_data:
            for i in topic_data:
                cursor.execute(
                    "select user_id from user_extra where user_id =" + str(i[0]) + " and is_shadow =0")
                data = cursor.fetchall()
                user_id = list(data)
                if user_id:
                    topic_id_list.append(i)

        if new_user_data:
            for i in new_user_data:
                cursor.execute(
                    "select user_id from user_extra where user_id =" + str(i[0]) + " and is_shadow =0")
                data = cursor.fetchall()
                user_id = list(data)
                if user_id:
                    topic_id_list.append(i)

            logging.info("Database version : %s " % topic_id_list)
            pc.close()
            return topic_id_list
    except:
        logging.error("catch exception,get_data:%s" % traceback.format_exc())
        return []


if __name__ == "__main__":
    try:

        numtime1, numtime2 = time_convs(1, 1)

        user_id = get_topic_new_user(numtime1, numtime2)

        follow_num = random.randint(1, 2)

        for i in range(follow_num):

            try:

                for j in user_id and user_id:

                    id = int(j[0])

                    time.sleep(random.randint(10, 30))

                    cookies = login()

                    if cookies is not None:
                        follow(cookies, id)
            except:
                pass

    except:
        logging.error("catch exception,main:%s" % traceback.format_exc())