#!/usr/bin/env python
# coding: utf-8
# # Get Notebook from github.com and other source.
# by [openthings@163.com](http://my.oschina.net/u/2306127/blog?catalog=3420733), 2016-04.
#
# ### 通用的Notebook更新维护的工具。
# * 原始URL列表保存在文本文件git_list.txt中。
# * git_list.txt转为git_list.md,在GitBook中使用。
# * git_list.txt转为git_list.ipynb,在Jupyter中使用。
# In[1]:
from pprint import *
# #### URL地址列表读入字符串变量中。
# #### 注意,为了避免太长,只显示了前面指定个数的字符。
# In[2]:
url_str = open("git_list.txt").read()
print(url_str[0:300] + "\n\n......")
# #### 分解字符串到名称和url。
# In[3]:
url_line = url_str.split("#")
url_list = []
for url in url_line:
url2 = url.strip().split("\n")
if len(url2)>1:
uname = url2[0]
ugit = url2[1]
url_dict = {"uname":uname,"ugit":ugit}
url_list.append(url_dict)
print("Total:",len(url_list))
pprint(url_list[0:3])
#print(uname,"\n",ugit)
# ## 保存到Markdown文件。
# In[4]:
flist = open("git_list.md","w+")
flist.write(
"""
## IPython Notebook Tutorial and Skills open source...
##### by [openthings@163.com](http://my.oschina.net/u/2306127/blog?catalog=3420733), 2016-04.
"""
)
for d in url_list:
flist.write("##### " + d["uname"] + "\n")
flist.write("[" + d["ugit"] + "]" + "(" + d["ugit"] + ")\n")
flist.close()
print("Writed url list to file: url_list.md")
# ## 抓取git库中文件到本地。如果已经存在,则git pull,否则git clone.
# ** 使用了IPython的!魔法操作符来执行shell操作。**
# In[7]:
import os
import os.path
index = 0
for d in url_list:
index += 1
print("\n",index,":\t",d["uname"],"\n==>>\t",d["ugit"])
git_path = os.path.split(d["ugit"])
git_name = git_path[1].split(".")[0]
#print(git_name)
if os.path.exists(git_name):
print("\t Existed, git pull:",git_name," ...")
get_ipython().system(' cd $git_name && git pull')
else:
print("Git clone ......")
ucmd = "git clone " + d["ugit"]
#print(ucmd)
get_ipython().system(' $ucmd')
print("Finished.")
# In[ ]: