# Path: Server/jbox/models.py
# class Developer(UserMixin, db.Model):
# class Integration(db.Model):
# class GitHub(db.Model):
# class Channel(db.Model):
# class Authorization(db.Model):
#     def __repr__(self):
#     def verify_developer(self, platform_id):
#     def generate_confirmation_token(self, expiration=3600):
#     def confirm(token):
#     def insert_to_db(self):
# def developer_loader(platform, platform_id):
# def request_loader(request):
# def verify_developer(platform_or_token, platform_id):
#     def __repr__(self):
#     def insert_to_db(self):
#     def __repr__(self):
# def load_user(developer_id):
# def generate_dev_key():
# def generate_platform_id():
# def generate_integration_id():
# def generate_auth_token():
# 
# Path: Server/jbox/main/views.py
# def json_to_dict(x):
# def update_qq_api_request_data(data={}):
# def get_user_info():
# def login():
# def logout():
# def authorized():
# def get_qq_oauth_token():
# def index():
# def document():
# def guide():
# def application():
# def get_developer():


import os
import requests
import uuid
from flask import abort, Flask, json, jsonify, render_template, redirect, request, url_for, flash, session
from flask_httpauth import HTTPAuth
from flask_oauthlib.client import OAuth
from . import auth
from config import basedir
from ..models import db, Channel, Developer, Integration, Authorization, generate_integration_id, generate_auth_token
from ..main.views import update_qq_api_request_data, qq, json_to_dict
    if username is None or username == '':
        return redirect(url_for('auth.setting'))
    return render_template('auth/profile.html', developer=developer)


@auth.route('/setting', methods=['GET', 'POST'])
def setting():
    developer = get_developer()
    if developer is None:
        return redirect(url_for('main.login'))
    username = developer.username
    if username is None or username == '':
        first_login = True
    else:
        first_login = False
    return render_template('auth/setting.html', **locals())


def generate_file_name(file_type):
    return uuid.uuid1().__str__() + '.' + file_type


@auth.route('/github/create/<string:channel>', methods=['GET'])
def create_github_integration(channel):
    new_integration_id = generate_integration_id()
    developer = get_developer()
    if developer is None:
        return redirect(url_for('main.login'))
    github_channel = Channel.query.filter_by(developer=developer, channel=channel).first()
    if github_channel is None:

# Path: Server/jbox/models.py
# class Developer(UserMixin, db.Model):
# class Integration(db.Model):
# class GitHub(db.Model):
# class Channel(db.Model):
# class Authorization(db.Model):
#     def __repr__(self):
#     def verify_developer(self, platform_id):
#     def generate_confirmation_token(self, expiration=3600):
#     def confirm(token):
#     def insert_to_db(self):
# def developer_loader(platform, platform_id):
# def request_loader(request):
# def verify_developer(platform_or_token, platform_id):
#     def __repr__(self):
#     def insert_to_db(self):
#     def __repr__(self):
# def load_user(developer_id):
# def generate_dev_key():
# def generate_platform_id():
# def generate_integration_id():
# def generate_auth_token():
# 
# Path: Server/jbox/main/views.py
# def json_to_dict(x):
# def update_qq_api_request_data(data={}):
# def get_user_info():
# def login():
# def logout():
# def authorized():
# def get_qq_oauth_token():
# def index():
# def document():
# def guide():
# def application():
# def get_developer():


# Path: Server/jbox/auth/views.py
import os
import requests
import uuid
from flask import abort, Flask, json, jsonify, render_template, redirect, request, url_for, flash, session
from flask_httpauth import HTTPAuth
from flask_oauthlib.client import OAuth
from . import auth
from config import basedir
from ..models import db, Channel, Developer, Integration, Authorization, generate_integration_id, generate_auth_token
from ..main.views import update_qq_api_request_data, qq, json_to_dict

    if username is None or username == '':
        return redirect(url_for('auth.setting'))
    return render_template('auth/profile.html', developer=developer)


@auth.route('/setting', methods=['GET', 'POST'])
def setting():
    developer = get_developer()
    if developer is None:
        return redirect(url_for('main.login'))
    username = developer.username
    if username is None or username == '':
        first_login = True
    else:
        first_login = False
    return render_template('auth/setting.html', **locals())


def generate_file_name(file_type):
    return uuid.uuid1().__str__() + '.' + file_type


@auth.route('/github/create/<string:channel>', methods=['GET'])
def create_github_integration(channel):
    new_integration_id = generate_integration_id()
    developer = get_developer()
    if developer is None:
        return redirect(url_for('main.login'))
    github_channel = Channel.query.filter_by(developer=developer, channel=channel).first()
    if github_channel is None:

        github_channel = Channel(developer=developer, channel=channel)