import ast
import pandas as pd
import requests
import time
import traceback
from sqlalchemy import *
from sqlalchemy.orm import sessionmaker
from sqlalchemy.ext.declarative import declarative_base
import matplotlib
import numpy as np
import matplotlib.pyplot as plt

import datetime
import instaconfig

instagram, database, search_tags = instaconfig.config()

              

# Setup Tables and ORM

engine = create_engine('mysql://%(user)s:%(pass)s@%(host)s' % database) # connect to server
engine.execute('drop database %s' % database['name'])
engine.execute('create database %s' % database['name'])

# Select Database

engine.execute('use %s' % database['name']) # select db

# Build ORM
Base = declarative_base()
import requests
import csv
import time
from datetime import datetime, timedelta
import traceback
import instaconfig
import isodate
import sqlalchemy
import pandas as pd

instagram, database = instaconfig.config()

# write list of posts to csv file, used below
def read_write(result, writer):
    entries = [0, 0]
    for post in result['data']:
        try:
            if post['location'] is not None:
                if 'latitude' in post['location'].keys(): # some are missing
                    row_dict = {'user_id':  post['user']['id'],
                        'image_url': post['images']['standard_resolution']['url'],
                        'created_time': post['created_time'],
                        'lat': post['location']['latitude'],
                        'long': post['location']['longitude'],
                        'post_url': post['link'],
                        'id': post['id'],
                        'likes': post['likes']['count']
                    }

                    # print datetime.fromtimestamp(int(post['created_time'])).isoformat()
                    # add text if available