gitea-github-sync/gitea_github_sync/gitea/repo.py

36 lines
863 B
Python
Raw Normal View History

from urllib.parse import urlparse
def urlparse_w(url):
parseresult = urlparse(url)
splitted_path = parseresult.path.split('/')
# add some more metadata
gitea_username = splitted_path[1]
gitea_reponame = splitted_path[2]
return {
"raw": parseresult,
"username": gitea_username,
"reponame": gitea_reponame,
}
class GiteaRepo:
def __init__(self, urlspec):
"""
Return a GiteaRepo from a urlspec (see urllib.parse.ParseResult) and some other metadata
For implementation details, see urlparse_w.
If you want to take an actual url, use the .from_url classmethod.
"""
self.urlspec = urlspec
@classmethod
def from_url(cls, url):
"""
Return a GiteaRepo from a url.
"""
parsed = urlparse_w(url)
return cls(parsed)