This repository has been archived on 2022-06-22. You can view files and clone it, but cannot push or open issues or pull requests.
github-gitea-mirror/src/gistsStared.py
2022-01-12 17:46:09 +05:30

76 lines
2.8 KiB
Python

#!/usr/bin/env python
# https://github.com/PyGithub/PyGithub
from helper import log,getConfig,giteaCreateUserOrOrg,giteaSetRepoStar, giteaSetRepoTopics,giteaSession,giteaCreateRepo,ghApi,giteaCreateOrg,giteaGetUser
from github import GithubException
from localCacheHelper import giteaExistsRepos,saveLocalCache
def gistsStared():
config = getConfig()
session = giteaSession()
gh = ghApi()
default_gist_user = giteaGetUser('gist')
if default_gist_user == 'failed':
default_gist_user = giteaCreateOrg('gist')
for repo in gh.get_user().get_starred_gists():
if repo.public:
isPrivate = False
else:
isPrivate= True
log('Gist : {0}/{1}'.format(repo.owner.login,repo.id))
prefix = ''
surfix = ''
gitea_uid = giteaGetUser(repo.owner.login)
repo_owner = repo.owner.login
if gitea_uid == 'failed':
gitea_uid = giteaCreateUserOrOrg(repo.owner.login,repo.owner.type)
if gitea_uid == 'failed':
gitea_uid = default_gist_user
repo_owner = 'gist'
if len(config['gitea']['gist']['prefix']) != 0:
prefix = "{0}-".format(config['gitea']['gist']['prefix'])
if len(config['gitea']['gist']['surfix']) != 0:
surfix = "-{0}".format(config['gitea']['gist']['surfix'])
m = {
"repo_name" : "{0}{1}{2}".format(prefix,repo.id,surfix),
"description" : (repo.description or "not really known")[:255],
"clone_addr" : repo.git_pull_url,
"mirror" : True,
"private" : isPrivate,
"uid" : gitea_uid,
}
status = giteaCreateRepo(m,isPrivate,False)
if status != 'failed':
try:
if status != 'exists':
giteaExistsRepos['{0}/{1}'.format(repo.owner.login,repo.id)] = "{0}/{1}".format(repo_owner,m['repo_name'])
topics = ['gist','{0}-gist'.format(repo_owner),'gist-stared','{0}-stared-gist'.format(repo_owner)]
if isPrivate:
topics.append('secret-gist')
topics.append('secret-{0}-gist'.format(repo_owner))
else:
topics.append('public-gist')
topics.append('public-{0}-gist'.format(repo_owner))
giteaSetRepoTopics(repo_owner,m["repo_name"],topics)
giteaSetRepoStar(repo_owner,m["repo_name"])
except GithubException as e:
print("###[error] ---> Github API Error Occured !")
print(e)
print(" ")
if status == 'failed':
log(repo)
log(False)
saveLocalCache()