Advertisement
Guest User

#[PYLIB]#testrun.pylib

a guest
Feb 25th, 2018
118
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 23.60 KB | None | 0 0
  1. {"rf": {"GRE App/.ipynb_checkpoints": [], "GRE App/vocab": ["2018-02-22 16:42:34.918386.txt", "2018-02-22 16:48:02.080719.txt"], "GRE App": ["sky_installer.py", "FlashCard.py", "pastebin_lib.py", "skyinstaller.py"]}, "fc": {"pastebin_lib.py": "\n# coding: utf-8\n\n# In[1]:\nimport pip\nimport os\n\ndef install(package):\n pip.main(['install', package])\n\ntry:\n import requests\nexcept Exception as e:\n print \"waiting for installing requests...\"\n install('requests')\n \ndef cls():\n os.system('cls' if os.name=='nt' else 'clear')\nimport requests\ncls()\n\n# In[2]:\n\n\napi_dev_key = '469d5090756eea31dde05fa72c38c6ee'\nusername = 'RayWilliams'\npassword = '515619962'\n\n\n# In[3]:\n\n\n\n\n# PARAMS\ndef paste(file_name=\"Untitled.txt\",content=\"None\",session=''):\n global api_dev_key\n paste_name = \"#VOC#\" + file_name\n # PARAMS\n data = str(content)\n url = 'https://pastebin.com/api/api_post.php'\n pastebin_vars = {'api_dev_key': api_dev_key,'api_paste_code': data,'api_user_key': session,'api_paste_private':'0',\n 'api_option' : 'paste','api_paste_name': paste_name}\n\n r = requests.post(url,pastebin_vars)\n return r.text\n\n\n# In[4]:\n\n\ndef login(username,password):\n login_url = 'https://pastebin.com/api/api_login.php'\n api_user_name = username\n api_user_password = password\n r = requests.post(login_url,{'api_dev_key':api_dev_key,'api_user_name':api_user_name,'api_user_password':api_user_password})\n if r.ok:\n return r.text\n else:\n return None\n\n\n# In[5]:\n\n\napi_user_key = '17e3458f70d1faf816a7daca143931f8';\napi_results_limit = 100;\nlist_url = 'https://pastebin.com/api/api_post.php';\nr = requests.post(list_url,{'api_dev_key':api_dev_key, 'api_user_key':api_user_key, 'api_results_limit':api_results_limit, 'api_option': 'list'})\n\n\n# In[6]:\n\n\ndef get_list_from_user(username,password):\n session = login(username,password)\n if session is not None:\n return get_list(session)\n else:\n print \"Login failed\"\n return None\n\n\n# In[7]:\n\n\ndef get_list(session):\n import xml.etree.ElementTree as ET\n api_results_limit = 100;\n list_url = 'https://pastebin.com/api/api_post.php';\n r = requests.post(list_url,{'api_dev_key':api_dev_key, 'api_user_key':session, 'api_results_limit':api_results_limit, 'api_option': 'list'})\n paste_list = r.text\n #parse tree\n t = \"<root>\" + paste_list + \"</root>\"\n root = ET.fromstring(t)\n content_list,ret_list = [],[]\n for paste in root:\n one_post = {}\n for element in paste:\n if element.tag.strip() == 'paste_key':\n one_post['key'] = str(element.text).strip()\n elif element.tag.strip() == 'paste_title':\n one_post['title'] = str(element.text).strip()\n elif element.tag.strip() == 'paste_size':\n one_post['size'] = str(element.text).strip()\n content_list.append(one_post)\n for post in content_list:\n if post['title'].startswith('#VOC#'):\n ret_list.append(post)\n return ret_list\n\n\n# In[8]:\n\n\ndef paste_by_user(username,password,title,content):\n if content is None:\n print 'No content to save'\n return\n elif content.strip() == '':\n print 'No content to save'\n return\n session = login(username,password)\n if not title.lower().endswith('.txt'):\n title += '.txt'\n paste_url = paste(file_name=title,content=content,session=session)\n if paste_url.strip().startswith('http'):\n print 'Saved at:', paste_url\n else:\n print 'Saving fails'\n\n\n# In[9]:\n\n\ndef get_content_from_key(key):\n r = requests.get('https://pastebin.com/raw/' + str(key).strip())\n return r.text\n\n", "FlashCard.py": "#!/usr/bin/python\n# coding: utf-8\n\n# In[1]:\n\n\nimport numpy as np\nimport time\nimport datetime\nimport os\nimport pastebin_lib as cloud\n\n\n# In[2]:\n\n# the online backup key is DNdPnxpN, url is https://pastebin.com/DNdPnxpN\n_original = u\"\"\"\ndetract,discrepant, typify,dissemble, earnestly, peevish, choleric, at variance with, detract, \nshrill,canopy,stalk, expiate, cavern, balk, demarcate, detract, detrimental, diffuse, diverting, \ndroll, encomium, fusty, indigent, exiguous, consequential, hitch, gloat, exasperate, fungible,\nextravagant, incongruity, flout, impetuous, hem, abstention, unassuming, exude, fiery,exiguous,\nflounder,laity,jejune,incongruous,vehemence,impulsive,prosy, lucrative, ludicrous, lugubrious,\nlull,madcap, malady, malfeasance, malodorous, manacle, maudlin, mendacious,mecurial,\nmisgiving, mishandle, monolithic, morbid, mordant, naivete, narcissism,nettle,nimble,\nno-nonsense,nonchalant,numinous,obdurate,obeisance,obfuscate,objectionable,obliterate,obsequious,\nobviate,occlude,occult,opinionated,oppresive,opprobrium,opulent,overblown,overbearing,palliate,\nparochial,parish, parsimonious, partisan, pastiche, pastoral, patchwork, patent, pathetic, pecuniary, \npejorative, pellucid, penchant, peregrinate, perilous, peripatetic, periphery, perspicacious, plaintive, \nplastic, plod, polemical, portend, pragmatic, precipitate, predilection, presage, prescient, prescriptive, \npressing, prestigious, propitiate, pretext,list,precocious, nocturnal, supercilious, mellifluous,\nepitome, omen, philanthropy, pretentious, fawning, impasse, profusion, ferocious, glum, camouflage, \nrecapitulate, polemic, prodigious, profligate, propitious, prosaic, protean, provenance, prying, \npugnacious, purview, quirk, quotidian, raillery, rally, rapacious, rapprochement, rattle, recapitulate, \nrecast, recoil, reconcile, recondite, recrudescent, rehabilitate, rehash, relish, remiss, reprehensible, \nrepudiate, resolve, restive == testy, reverent, revisionist, riddle, rigorous, ring true, risible, rule out, \nruminate, sacrosanct, salient, salubrious, salutary, sanguine, sanity, sartorial, scaremonger, senescence, sequester == sequestrate, \nsever, shirk,shriek, shoddy, skittish, skullduggery, sleazy, slippery, slur, snag, snub, sober, somber, \nsomnolent, sordid, spartan, specious, spur, spurious, spurn, speculative, moralistic, cordial, \nputative, acrimony, evade, meretricious, cement, purport, congruous, stave off, subsidize, \nsupplicate, surly, sway, sweeping, sycophant, synoptic, taciturn, taint, tactless, tantamount, \nteem, tendentious, trepidation, truculent, tumultuous, turbid, umbrage, unalloyed, unassuming, \nundercut, unflagging,unflinching, ungainly, unimpeachable, prepossessing, unremitting, unsurpassed, \ntrammel, unwarranted, wieldy, unwitting, unyielding, upheaval, vainglorious, valorize, vehement, \nvenal, vitiate, vitriolic, vivacious, volatile, voracious, wield, wistful, witless, wondrous, \nwoo, entreaty, expedient, mellifluous,onerous,trepidation, wastrel\n\"\"\"\n\n\n# In[3]:\n\n\nunfamiliar_words = []\nnum_familiar,num_unfamiliar = 0,0\n\n\n# In[4]:\n\n\n\ndef get_data(_data = _original):\n global unfamiliar_words\n global num_familiar\n global num_unfamiliar\n unfamiliar_words = []\n num_familiar,num_unfamiliar = 0,0\n #_data = _data.decode('utf-8')\n data = _data.replace(u'\uff0c',u',')\n words = data.split(',')\n words = set([word.strip() for word in words if word.strip() != ''])\n cls()\n return words\n\n\n# In[5]:\ndef get_original_online():\n \"\"\"This function is still under development\"\"\"\n return cloud.get_content_from_key('DNdPnxpN')\n\n\ndef cls():\n os.system('cls' if os.name=='nt' else 'clear')\n\ndef get_header(current,all):\n cls()\n print \"{} / {}\".format(current,all)\n\ndef one_question(word_array):\n global unfamiliar_words\n global num_familiar\n global num_unfamiliar\n lens = len(word_array)\n for id,word in enumerate(word_array):\n get_header(id+1,lens)\n try:\n known = raw_input('[?]{}\\n>'.format(word))\n except UnicodeEncodeError:\n word_str = '[?]{}\\n>'.format(word)\n word_str = word_str.decode('ascii', 'ignore')\n known = raw_input(word_str)\n except:\n print 'Unrecognized characters found, skipping ...'\n time.sleep(1)\n continue\n if known.lower().strip() != 'y':\n print '[x]{}\\n'.format(word)\n unfamiliar_words.append(word)\n num_unfamiliar +=1\n else:\n num_familiar +=1\n time.sleep(0.5)\n\n\n# In[6]:\n\n\ndef write_to_file():\n if len(unfamiliar_words) == 0:\n print 'No Record To Be Saved'\n return\n if not os.path.exists('vocab'):\n os.mkdir('vocab')\n fname = str(datetime.datetime.today()) + '.txt'\n f = open('vocab/' + fname,'w')\n content = ','.join(unfamiliar_words)\n f.write(content)\n f.close()\n print '[LOCAL]Saved'\n return fname\n\ndef write_to_cloud(fname):\n if len(unfamiliar_words) == 0:\n return\n content = ','.join(unfamiliar_words)\n if fname is None:\n fname = str(datetime.datetime.today()) + '.txt'\n cloud.paste_by_user(cloud.username,cloud.password,fname,content)\n print '[CLOUD]Saved'\n return fname\n\n# In[7]:\n\n\ndef read_file(filename):\n f = open('vocab/' + filename)\n content = f.read()\n f.close()\n return content\n\n\n# In[8]:\ndef select_file():\n ans = raw_input('Choose file path:\\n[1]Local\\n[2]Cloud\\n>')\n if ans.strip() == '2':\n return select_cloud_file()\n else:\n return select_local_file()\n\ndef select_cloud_file():\n cls()\n try:\n file_list = cloud.get_list_from_user(cloud.username,cloud.password)\n file_list = [item for item in file_list if (item['title'].replace('#VOC#','').strip())[0].isdigit()]\n print \"[l]Switch To Local\"\n print \"[o]Using Backup Original Vocabulary\"\n for id,item in enumerate(file_list):\n title = item['title'].replace('#VOC#','')\n size = item['size']\n if len(title) > 30:\n title = title[:25] + '...txt'\n print '[{}]{}\\tSize:{}'.format(id+1,title,size)\n id = raw_input('Input Option ID >')\n id = id.strip()\n if id.lower() == 'l':\n return select_local_file()\n if id.lower() == 'o':\n original = get_original_online()\n return get_data(original)\n try:\n id = int(id) - 1\n id = min(id, len(file_list)-1)\n id = max(0,id)\n key = file_list[id]['key']\n data = cloud.get_content_from_key(key)\n return get_data(data)\n except:\n print 'Using Local Original As Default'\n return get_data()\n except:\n print 'Cloud not available, using local'\n return select_local_file()\n\n\ndef select_local_file():\n cls()\n if not os.path.exists('vocab'):\n return get_data()\n files = os.listdir('vocab')\n files = [f for f in files if f.endswith('.txt')]\n if len(files) > 0:\n files.sort()\n print \"[c]Switch To Cloud\"\n print \"[x]Remove All Caches\"\n print \"[0]Original\"\n for id,f in enumerate(files):\n print \"[{}]{}\".format(id+1,f)\n id = raw_input('Input Option ID >')\n id = id.strip()\n if id.lower() == 'c':\n return select_cloud_file()\n if id.lower() == 'x':\n for f in files:\n os.remove('vocab/' + f)\n return select_local_file()\n try:\n id = int(id) - 1\n if id == -1:\n return get_data()\n else:\n content = read_file(files[id])\n return get_data(content)\n except:\n print 'Using Local Original As Default'\n return get_data()\n else:\n return get_data()\n\n\n# In[9]:\n\n\ndef exit_program():\n global exit\n ans = raw_input('Exit?[y/n]\\n>')\n if ans.lower().strip() == 'y':\n exit = True\n\n\n# In[10]:\n\n\ndef save_to_file():\n answer = raw_input('save unfamiliar words?[y/n](Default Y)\\n>')\n if answer.lower().strip() == 'n':\n return\n else:\n write_to_file()\n\ndef save_to_cloud(fname):\n answer = raw_input('save unfamiliar words?[y/n](Default N)\\n>')\n if answer.lower().strip() == 'y':\n return write_to_cloud(fname)\n else:\n return ''\n\n# In[16]:\nif __name__ == '__main__':\n try:\n print \"<Do It Everyday Flashcard>\"\n print \"Author: Ray\"\n try:\n os.chdir(os.path.dirname(os.path.abspath(__file__)))\n except:\n pass\n time.sleep(1)\n exit = False\n while(not exit):\n words = select_file()\n num = raw_input(\"Choose Vocabulary Number (Default All)>\")\n num = num.strip()\n if num.strip() == '':\n num = -1\n else:\n while(not num.isdigit()):\n num = raw_input(\"Choose Vocabulary Number >\")\n num = int(num)\n if num <= 0:\n num = len(words)\n if num == -1 or num >= len(words):\n # all words\n words = list(words)\n num = len(words)\n generated = np.random.permutation(words)\n else:\n words = np.array(list(words))\n generated = np.random.choice(words,num,replace=False)\n cls()\n print \"[!]Input y If You Are Familiar, n otherwise.\"\n time.sleep(2)\n one_question(generated)\n cls()\n fname = save_to_file()\n fname = save_to_cloud(fname)\n exit_program()\n except:\n print\n pass\n\n", "skyinstaller.py": "#!/usr/bin/env python2\n# -*- coding: utf-8 -*-\n\"\"\"\nCreated on Sun Feb 25 21:06:26 2018\n\n@author: MacBook\n\"\"\"\nimport requests\nimport os\n\napi_dev_key = 'd679fba2731eb2b81f080788e4ad0f6e'\nusername = 'skyinstaller'\npassword = 'skyinstaller'\n\n\n# PARAMS\ndef paste(file_name,content,session=''):\n global api_dev_key\n paste_name = \"#[PYLIB]#\" + file_name\n # PARAMS\n data = str(content)\n url = 'https://pastebin.com/api/api_post.php'\n pastebin_vars = {'api_dev_key': api_dev_key,'api_paste_code': data,'api_user_key': session,'api_paste_private':'0',\n 'api_option' : 'paste','api_paste_name': paste_name}\n\n r = requests.post(url,pastebin_vars)\n return r.text\n\ndef login():\n login_url = 'https://pastebin.com/api/api_login.php'\n api_user_name = username\n api_user_password = password\n r = requests.post(login_url,{'api_dev_key':api_dev_key,'api_user_name':api_user_name,'api_user_password':api_user_password})\n if r.ok:\n return r.text\n else:\n return None\n \ndef get_list(session):\n import xml.etree.ElementTree as ET\n global api_dev_key\n api_results_limit = 100;\n list_url = 'https://pastebin.com/api/api_post.php';\n r = requests.post(list_url,{'api_dev_key':api_dev_key, 'api_user_key':session, 'api_results_limit':api_results_limit, 'api_option': 'list'})\n paste_list = r.text\n #parse tree\n t = \"<root>\" + paste_list + \"</root>\"\n root = ET.fromstring(t)\n content_list = []\n for paste in root:\n one_post = {}\n for element in paste:\n if element.tag.strip() == 'paste_key':\n one_post['key'] = str(element.text).strip()\n elif element.tag.strip() == 'paste_title':\n one_post['title'] = str(element.text).strip()\n elif element.tag.strip() == 'paste_size':\n one_post['size'] = str(element.text).strip()\n content_list.append(one_post)\n return content_list\n\n\ndef paste_by_user(title,content,session=''):\n if content is None:\n content = ''\n print 'paste_by_user', title,content,session\n paste_url = paste(file_name=title,content=content,session=session)\n if paste_url.strip().startswith('http'):\n return paste_url\n return None\n\ndef get_content_from_key(key):\n r = requests.get('https://pastebin.com/raw/' + str(key).strip())\n return r.text\n\ndef generate_project_structure(folderpath,suffix=['.py','.txt']):\n root_file = {}\n fname_content = {}\n if folderpath.strip() == '.':\n folderpath = os.path.abspath('.')\n basefolder = os.path.basename(folderpath)\n for root, dirs, files in os.walk(folderpath):\n print 'root:', root\n #print 'dirs:', dirs\n print 'files', files\n filtered_files = []\n for _file in files:\n filename, file_extension = os.path.splitext(_file)\n if file_extension.lower() in suffix:\n filtered_files.append(_file)\n path = os.path.join(root,_file)\n with open(path,'r') as f:\n fname_content[_file] = f.read()\n root_file[root.replace(folderpath,basefolder)] = filtered_files\n level = root.replace(folderpath, '').count(os.sep)\n indent = ' ' * 4 * (level)\n print('{}{}/'.format(indent, os.path.basename(root)))\n subindent = ' ' * 4 * (level + 1)\n for f in files:\n sign = '[x]'\n for fmt in suffix:\n if f.lower().endswith(fmt):\n sign = '[o]'\n break\n print('{}{}{}'.format(subindent, f, sign))\n return root_file, fname_content\n \ndef jsonify_content(root_file, fname_content):\n import json\n ret = {}\n ret['rf'] = root_file\n ret['fc'] = fname_content\n output = json.dumps(ret)\n return output", "sky_installer.py": "\n# coding: utf-8\n\n# In[1]:\nimport pip\nimport os\n\ndef install(package):\n pip.main(['install', package])\n\ndef cls():\n os.system('cls' if os.name=='nt' else 'clear')\ntry:\n import requests\nexcept Exception as e:\n print \"waiting for installing requests...\"\n install('requests')\n cls()\n\nimport requests\n\n\n# In[2]:\n\n\napi_dev_key = 'd679fba2731eb2b81f080788e4ad0f6e'\nusername = 'skyinstaller'\npassword = 'skyinstaller'\n\n\n# In[3]:\n\n\n# PARAMS\ndef paste(file_name,content='',session=''):\n global api_dev_key\n paste_name = file_name\n # PARAMS\n data = str(content)\n url = 'https://pastebin.com/api/api_post.php'\n pastebin_vars = {'api_dev_key': api_dev_key,'api_paste_code': data,'api_user_key': session,'api_paste_private':'0',\n 'api_option' : 'paste','api_paste_name': paste_name}\n\n r = requests.post(url,pastebin_vars)\n return r.text\n\n\n# In[4]:\n\n\ndef login():\n login_url = 'https://pastebin.com/api/api_login.php'\n api_user_name = username\n api_user_password = password\n r = requests.post(login_url,{'api_dev_key':api_dev_key,'api_user_name':api_user_name,'api_user_password':api_user_password})\n if r.ok:\n return r.text\n else:\n return None\n\n\n# In[6]:\n\n\ndef get_list_from_user():\n session = login()\n if session is not None:\n return get_list(session)\n else:\n print \"Login failed\"\n return None\n\n\n# In[7]:\n\n\ndef get_list(session):\n import xml.etree.ElementTree as ET\n api_results_limit = 100;\n list_url = 'https://pastebin.com/api/api_post.php';\n r = requests.post(list_url,{'api_dev_key':api_dev_key, 'api_user_key':session, 'api_results_limit':api_results_limit, 'api_option': 'list'})\n paste_list = r.text\n #parse tree\n t = \"<root>\" + paste_list + \"</root>\"\n root = ET.fromstring(t)\n content_list = []\n for paste in root:\n one_post = {}\n for element in paste:\n if element.tag.strip() == 'paste_key':\n one_post['key'] = str(element.text).strip()\n elif element.tag.strip() == 'paste_title':\n one_post['title'] = str(element.text).strip()\n elif element.tag.strip() == 'paste_size':\n one_post['size'] = str(element.text).strip()\n content_list.append(one_post)\n return content_list\n\n\n# In[8]:\n\n\ndef paste_by_user(title,content,session=''):\n if content is None:\n content = ''\n print 'paste_by_user', title,content,session\n paste_url = paste(file_name=title,content=content,session=session)\n if paste_url.strip().startswith('http'):\n return paste_url\n return None\n\n\n# In[9]:\n\n\ndef get_content_from_key(key):\n r = requests.get('https://pastebin.com/raw/' + str(key).strip())\n return r.text\n\n\n# In[10]:\n \ndef generate_project_structure(folderpath,suffix=['.py','.txt']):\n root_file = {}\n fname_content = {}\n if folderpath.strip() == '.':\n folderpath = os.path.abspath('.')\n basefolder = os.path.basename(folderpath)\n for root, dirs, files in os.walk(folderpath):\n print 'root:', root\n #print 'dirs:', dirs\n print 'files', files\n filtered_files = []\n for _file in files:\n filename, file_extension = os.path.splitext(_file)\n if file_extension.lower() in suffix:\n filtered_files.append(_file)\n path = os.path.join(root,_file)\n with open(path,'r') as f:\n fname_content[_file] = f.read()\n root_file[root.replace(folderpath,basefolder)] = filtered_files\n level = root.replace(folderpath, '').count(os.sep)\n indent = ' ' * 4 * (level)\n print('{}{}/'.format(indent, os.path.basename(root)))\n subindent = ' ' * 4 * (level + 1)\n for f in files:\n sign = '[x]'\n for fmt in suffix:\n if f.lower().endswith(fmt):\n sign = '[o]'\n break\n print('{}{}{}'.format(subindent, f, sign))\n return root_file, fname_content\n \n# In[11]:\ndef write_file(file_path,key):\n if key is None:\n file_content = ''\n elif str(key).strip() == '':\n file_content = ''\n else:\n file_content = get_content_from_key(key)\n f = open(file_path,'w')\n f.write(file_content)\n f.close()\n\n\ndef build_project_structure(root_file,file_name_to_key,path='',suffix=['.py','.txt']): # relative paths\n \"\"\"construct the project locally\"\"\"\n for folder in root_file.keys():\n os.makedirs(path+folder)\n fname = root_file[folder]\n key = file_name_to_key[fname]\n file_path = os.path.join(path,folder,fname)\n write_file(file_path,key)\n\n\n\n# In[22]:\ndef push(folderpath,suffix=['.py','.txt']):\n import time,json\n res = {}\n # upload files\n rf, fc = generate_project_structure(folderpath,suffix)\n basename = os.path.basename(folderpath)\n fname_to_key = {}\n session = ''\n print 'Start to upload files'\n for fname,fcontent in fc.iteritems():\n url = paste_by_user(fname,fcontent,session)\n if url is None:\n raise Exception('PushError','Cannot upload to cloud')\n else:\n fname_to_key[fname] = str(url)\n time.sleep(1)\n \n print 'fname_to_key=',fname_to_key\n # upload structures\n for root,fnames in rf.iteritems():\n for fname in fnames:\n content = []\n content.append(fname)\n print 'root=',root\n print 'fname=',fname\n print str(fname_to_key[fname])\n content.append(str(fname_to_key[fname]))\n res[root] = content\n res_str = json.dumps(res)\n url = paste_by_user(basename,res_str,session)\n #print res_str\n print 'Push successfully! URL=' + str(url)\n \n# In[23]:\n \nif __name__ == '__main__':\n paste('svds.tv','fasdgsdafsa')", "2018-02-22 16:48:02.080719.txt": "Demo,detrimental", "2018-02-22 16:42:34.918386.txt": "choleric,Demo,detrimental"}}
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement