Пример #1
0
async def get_user_object(name):
	global user, posts, result, comments, cache
	replit = repltalk.Client()
	if(name in cache.keys()):
	  cached =  cache.get(name)
	  print('used cache')
	  user = cached.get('user')
	  posts = cached.get('posts')
	  comments = cached.get('comments')
	else:
	  try:
		  user = await replit.get_user(name)
		  print('requested info')
	  except Exception as e:
		  user = None
		  ex_type, ex, tb = sys.exc_info()
		  log_error(e, ex_type, ex, tb, cur_time)
	  try:
	    posts = await user.get_posts(limit=5, order='new')
	  except Exception as e:
	  	posts = None
	  	ex_type, ex, tb = sys.exc_info()
	  	log_error(e, ex_type, ex, tb, cur_time)
	  try:
	  	comments = await user.get_comments(limit=5, order='new')
	  except Exception as e:
	    comments = None
	    ex_type, ex, tb = sys.exc_info()
	    log_error(e, ex_type, ex, tb, cur_time)
	  temp = {'user':user,'posts':posts,'comments':comments}
	  cache[name]=temp
	  threading.Thread(None,remove_key,args=(name,0)).start()
Пример #2
0
async def get_post_by_query(query):
    global posts_res
    posts_res = []
    replit = repltalk.Client()
    async for post in replit.boards.all.get_posts(sort='top',
                                                  search=str(query)):
        posts_res.append(post)
Пример #3
0
 async def replit_bio_get(name=None):
     if (name == None):
         exit("ERROR: Please fill out the name parameter!")
     else:
         try:
             client = repltalk.Client()
             user = await client.get_user(name)
             return user.bio
         except:
             exit(f"ERROR: Cannot load {name}'s bio!")
Пример #4
0
async def get_user_object(name):
	global user, posts, result, comments
	replit = repltalk.Client()

	try:
		user = await replit.get_user(name)
	except Exception as e:
		user = None
		ex_type, ex, tb = sys.exc_info()
		log_error(e, ex_type, ex, tb)

	try:
		posts = await user.get_posts(limit=5, order='new')
	except Exception as e:
		posts = None
		ex_type, ex, tb = sys.exc_info()
		log_error(e, ex_type, ex, tb)

	try:
		comments = await user.get_comments(limit=5, order='new')
	except Exception as e:
		comments = None
		ex_type, ex, tb = sys.exc_info()
		log_error(e, ex_type, ex, tb)
Пример #5
0
from PIL import Image

import cloudinary
import cloudinary.api
import cloudinary.uploader

from pymongo import MongoClient

from flask import Flask
from flask import abort
from flask import request
from flask import redirect
from flask import render_template

client = repltalk.Client()

myclient = MongoClient(os.getenv("mongouri"))
mydb = myclient["classrooms"]
user_db = mydb["users"]
classroom_db = mydb["classrooms"]
assignment_db = mydb["assignments"]
invitelinks_db = mydb["invitelinks"]
invitecodes_db = mydb["invitecodes"]

cloudinary.config(cloud_name=os.getenv("CLOUDINARY_CLOUD_NAME"),
                  api_key=os.getenv("CLOUDINARY_API_KEY"),
                  api_secret=os.getenv("CLOUDINARY_API_SECRET"))

app = Flask(__name__)
app.config['MAX_CONTENT_LENGTH'] = 16 * 1024 * 1024
Пример #6
0
 async def replit_leaderboard_get():
     #try:
     client = repltalk.Client()
     leaderboard = await client.get_leaderboard(limit=10)
     return leaderboard  #, sep="\n"
Пример #7
0
 def setUp(self):
     self.client = repltalk.Client()
     self.loop = asyncio.get_event_loop()
     self.run_async = self.loop.run_until_complete
Пример #8
0
from flask_login import login_user
from flask_login import logout_user
from flask_login import current_user
from flask_login import login_required

from .models import User
from .models import Project
from .forms import NewProject

try:
    db.create_all()
except:
    pass

replit = repltalk.Client()


@app.route("/")
def index():
    return flask.render_template("index.html")


@app.route("/dashboard")
@login_required
def dashboard():
    return flask.render_template("dashboard.html")


@app.route("/project/<pid>")
@login_required
Пример #9
0
	async def replit_bio_get(self, name = None):
	if (name == None):
		exit("Please fill out the name parameter!")
	else:
		try:
		client = repltalk.Client()
		user = await client.get_user(name)
		return user.bio
		except:
		exit(f"ERROR: Cannot load {name}'s bio!")
def replit_user():
    try:
      owner = os.environ['REPL_OWNER']
      return owner
    except:
      exit("ERROR: No such replit account exists!")
def replit_avatar(name = None):
  if (name == None):
    exit("Please fill out the name parameter!")
  else:
    try:
      e = asyncio.run(assets.replit_avatar_get(f"{name}"))
      return e
    except:
      exit(f"ERROR: Cannot find {name}'s avatar!")
def replit_bio(name = None):
  if (name == None):
    exit("Please fill out the name parameter!")
  else:
    try:
      e = asyncio.run(assets.replit_bio_get(f"{name}"))
      return e
    except:
      exit(f"ERROR: Cannot find {name}'s bio!")
def replit_name(name = None):
  if (name == None):
    exit("Please fill out the name parameter!")
  else:
    try:
      e = asyncio.run(assets.replit_name_get(f"{name}"))
      return e
    except:
      exit(f"ERROR: Cannot find {name}'s name!")
def replit_cycles(name = None):
    if name == None:
      exit("ERROR: You didn't fill out the name parameter!")
    else:
      try:
        e = asyncio.run(assets.replit_cycle_get(f"{name}"))
        return e
      except:
        exit("ERROR: Cannot find " + name + "'s cycles!")
def replit_langs(name = None, extra = None):
    sun = 0
    if name == None:
      exit("ERROR: You didn't fill out the name parameter!")
    else:
      if (extra == None):
        pass
      else:
        if (extra == "all"):
          sun = 1
      try:
        link = requests.get('https://replit.com/data/profiles/' +name )
        data = link.json()
        #print(data)
        els = list(data.items())
        all = els[-1]
        if ("hacker" in all):
          all = els[-2]
        if ("isTeam" in all):
          all = els[-1]
        all = list(all)
        stuff = all[1]
        stuff = str(stuff)
        stuff = stuff.replace("'", "")
        stuff = stuff.replace("[", "")
        stuff = stuff.replace("]", "")
        stuff = stuff.replace(" ", "")
        li = list(stuff.split(","))
        if (sun == 1):
          sun = 2
          return li, sun
        return (li)
      except:
        exit("ERROR: Cannot find " + name + "'s langs!")

def replit_post(name = None):#latest post
    if name == None:
      exit("ERROR: You didn't fill out the name parameter!")
    else:
      #user = os.environ["REPL_OWNER"]
      try:
        post = requests.get("https://replit.com/@"+ name +"?tab=posts")#name
        soup = BeautifulSoup(post.content, 'html.parser')
        html1 = soup.find("div", {"class":"jsx-2329710370 board-post-list-item-post-title"}).get_text()
        return html1
        #b = a.replace('</div>','')
        #return b
      except:
       exit("ERROR: Cannot find "+ name+"'s hottest post!")
  
def replit_posts(name = None):#all posts
    if name == None:
      exit("ERROR: You didn't fill out the name parameter!")
    else:
      try:
        post = requests.get("https://replit.com/@"+ name +"?tab=posts")#name
        soup = BeautifulSoup(post.content, 'html.parser')
        html1 = soup.find_all("div", {"class":"jsx-2329710370 board-post-list-item-post-title"})#.get_text()
        all_text = []
        for i in html1:
          all_text.append(i.get_text())
        return '\n'.join(all_text)
        
      except:
        exit("ERROR: Cannot find "+ name+"'s posts!")
  
def replit_comment(name = None):
  if name == None:
      exit("ERROR: You didn't fill out the name parameter!")
  else:
      try:
        post = requests.get("https://replit.com/@" + name + "?tab=comments")
        soup = BeautifulSoup(post.content, 'html.parser')
        for data in soup.find("p"):
          return (data.get_text())
          break # keep this here so it prints once
      except:
        exit("ERROR: Cannot find "+ name+"'s hottest comment!") 
  
def replit_comments(name = None):
    if name == None:
      exit("ERROR: You didn't fill out the name parameter!")
    else:
      try:
        post = requests.get("https://replit.com/@" + name + "?tab=comments")
        soup = BeautifulSoup(post.content, 'html.parser')
        all_text = []
        for data in soup.find_all("p"):
          all_text.append(data.get_text())
        return '\n'.join(all_text)
      except:
        exit("ERROR: Cannot find "+name+"'s comments!")
Пример #10
0
async def get_talk_leaderboard(lim=50):
	global lboard
	replit = repltalk.Client()
	lboard = await replit.get_leaderboard(limit=lim)