Github變身網絡硬盤

我在簡書寫博客, 會使用markdown格式, 而後把相關資源傳到百度網盤, 但最近發現百度網盤的資源常常會被取消分享, 爲了完全解決這個問題, 我把選擇把資源傳到Github, 博客自己的markdown格式能夠做爲README.mdpython

因而我寫了一個腳本,讓程序自動完成這項工做:

原始目錄架構

目錄結構

運行結果

Github自動生成新倉庫

Github自動生成新倉庫

本地目錄變化

本地目錄變化

在運行腳本以前,須要按照文章 簡書文章發佈到GitHub, 完成祕鑰對的添加!git

源碼:

1. 主腳本文件
# 本腳本須要提供的資源信息:
## 信息1: github帳戶及密碼, 
## 信息2: 新建的github倉庫名稱(駝峯式英文名)
## 信息3: 簡書的.md文檔
## 信息4: 須要上傳的其餘文件資源(單個文件資源不超過100M)

# 本腳本完成三個任務
## 任務1: 根據用戶提供的倉庫名建立github倉庫, 
## 任務2: 將簡書.md文檔做爲README.md上傳到github
## 任務3: 將其餘文件資源(單文件不超過100M)上傳到github(原來我一直放到百度盤, 後來發現百度盤分享常常掛掉, 就放棄了百度)

# 環境要求
## 1. 已經安裝curl
## 2. 已經安裝git

import os
import json

def getInfo():
	info = {}
	with open("./inputInfo.txt", 'r') as f:
		jsonStr = ''
		lines = f.readlines()
		# 過濾註釋, 生成json格式
		for line in lines:
			if '#' not in line:
				jsonStr += line
		info = json.loads(jsonStr)

	return info

# 在github建立遠程倉庫
def CreateRepository(info):
	GitHubUserName = info['GitHubUserName']
	GitHubPassWord = info['GitHubPassWord']
	GitHubRepositoryName = info['GitHubRepositoryName']

	new_command = 'curl -i -u ' + '\'' +GitHubUserName + ':' + GitHubPassWord + '\'' +' -d ' + '\''+ '{"name": ' + '\"'+GitHubRepositoryName +'\"'+ ', ' + '"auto_init": ' + 'true, ' + '"private": ' + 'false, ' + '"gitignore_template": ' + '"nanoc"}' + '\'' + ' https://api.github.com/user/repos'
	result = os.popen(new_command).readlines()
	if ('HTTP/1.1 201 Created\n' in result):
		print("建立成功")
		return True
	else:
		return False
	
def GetRepository(info):

	GetAllRepCommand = 'curl -i -u ' + '\'' + info['GitHubUserName'] + ':' + info['GitHubPassWord'] +'\'' + ' https://api.github.com/user/repos'
	print(GetAllRepCommand)
	result = os.popen(GetAllRepCommand).readlines()
	keyWord = info['GitHubUserName']+'/'+info['GitHubRepositoryName']
	# 判斷倉庫是否建立成功
	if not (keyWord in str(result)):
		return
	# 獲取倉庫到同級目錄下
	# git@github.com:zhaoolee/ChatRoom.git
	GetRepCommand = 'git clone git@github.com:' +  keyWord + '.git'

	# 將倉庫獲取到本地
	result = os.popen(GetRepCommand).readlines()

# 將資源文件放入倉庫
def FillRepository(info):
	AllFileName = os.listdir('./')
	PreReadMeFile = ''
	for FileName in AllFileName:
		if FileName[-3:] == '.md':
			PreReadMeFile = FileName

	# 將md文件替換原有的README.md
	ReplaceMdFileCommand = 'cp ./' + PreReadMeFile + ' ./'+ info['GitHubRepositoryName'] + '/README.md'
	print("==>", ReplaceMdFileCommand, "<==")
	result = os.popen(ReplaceMdFileCommand).readlines()

	# 將resource文件夾, 放入倉庫中
	RemoveResourceCommand = 'cp -r resource ' + './' + info['GitHubRepositoryName']
	print('RemoveResourceCommand==>', RemoveResourceCommand)
	result = os.popen(RemoveResourceCommand).readlines()

# 將文件提交到倉庫
def PushRepository(info):
	inputRepository = 'cd ' + info['GitHubRepositoryName']
	addCommand = 'git add .'
	result = os.popen(inputRepository+'\n'+addCommand).readlines()
	commitCommand = 'git commit -m "完成項目的初始化"'
	result = os.popen(inputRepository+'\n'+commitCommand).readlines()
	pushCommand = 'git push'
	result = os.popen(inputRepository+'\n'+pushCommand).readlines()
	print("完成")


def main():
	# 獲取信息
	info = getInfo()
	# 建立倉庫, 並經過ssh保存到本地
	CreateRepository(info)
	# 將倉庫git到本地
	GetRepository(info)
	# 將資源文件轉入代碼倉庫
	FillRepository(info)
	# 將資源提交到倉庫
	PushRepository(info)

if __name__ == '__main__':
	main()
複製代碼
2. 配置文件
{
	# 用戶名
	"GitHubUserName": "zhaoolee", 
	# 用戶密碼
	"GitHubPassWord": "github", 
	# 將要新建的倉庫
	"GitHubRepositoryName": "TestCreateRep"
}
複製代碼

爲便於管理, 相關資源整合到一張獨立的帖子,連接以下: www.jianshu.com/p/4f28e1ae0…github

相關文章
相關標籤/搜索