# encoding: UTF-8 import requests import re def download_file(url, filename): # NOTE the stream=True parameter # response = requests.head(url) # if "Content-Length" in response.headers: # print("length---" + response.headers["Content-Length"]) # if "Content-Length" in response.headers and int(response.headers["Content-Length"]) > 100000: # r = requests.get(url, stream=True) # with open(filename, 'wb') as f: # for chunk in r.iter_content(chunk_size=1024): # if chunk: # filter out keep-alive new chunks # f.write(chunk) # f.flush() # return filename r = requests.get(url, stream=True) if len(r.content) > 50000: # print("img url----" + url + " " + str(len(r.content))) with open(filename, 'wb') as f: for chunk in r.iter_content(chunk_size=1024): if chunk: # filter out keep-alive new chunks f.write(chunk) f.flush() return True else: return False def update_readme(repourl, language, img_names): with open("README.md", "r+") as f: text = f.read() if language == "Java": tag = "------------------------------------------ |" print(text.find(tag)) f.seek(text.find(tag)) strs = text.split(tag)[1] pass else: tag = "---------------------------------------- |" f.seek(text.find(tag)) strs = text.split(tag)[1] + tag + text.split(tag)[2] contexts = tag + "\n" + "|[" + repourl.split("/")[-1] + "](" + repo_url + ")\t" + \ "Language:" + language + " |" for imgname in img_names: contexts += "![" + repourl.split("/")[-1] + "](resources/" + imgname + ")" contexts += strs f.write(contexts) def get_repo_info(url): r = requests.get(url) text = r.text text = text.replace("\t", "") text = text.replace("\n", "") return text def get_imginfo_list(context): pattern = re.compile(r'<a href=([^<>]+)><img src=([^<>]+)></a>') match = pattern.findall(context) return match def get_programming_language(contexts): pattern = re.compile(r'itemprop="keywords">([^/<>]+)</span>') match = pattern.search(contexts) language = "" if match: language = match.group(1) return language print("Please input the repository address,like https://github.com/xxx/xxx") repo_url = input() print("start---") context = get_repo_info(repo_url) # 'https://github.com/cymcsg/Awesome-Mobile-UI' lang = get_programming_language(context) print("Language---" + lang) img_name_list = [] imginfo_list = get_imginfo_list(context) if len(imginfo_list) > 0: for imginfo in imginfo_list: imgurl = imginfo[0].split('"')[1] if imgurl.startswith("/"): imgurl = "https://github.com" + imgurl if imgurl.startswith("https://github.com"): imgurl = imgurl.replace("blob", "raw") pass imgName = imgurl.split("/")[4] + "_" + imgurl.split("/")[-1] if len(img_name_list) < 5: if download_file(imgurl, "resources/" + imgName): img_name_list.append(imgName) print("imgName--" + imgName) update_readme(repo_url, lang, img_name_list)