示例#1
0
def getPostedIssues(page = 0, recent = True, pageSize = 25):
    r = todoRedis.connect()
    
    issueCount = r.llen(RepoQueues.TodoGY)
    issues = r.lrange(RepoQueues.TodoGY, 0, issueCount - 1)
    pageCount = int(issueCount / pageSize)
    if issueCount % pageSize > 0:
        pageCount += 1
    
    if page >= pageCount:
        page = pageCount - 1
        
    if recent:
        issues.reverse()
    
    issues = issues[page * pageSize : min(issueCount,(page + 1) * pageSize )]        
        
    todoList = []
    for issue in issues:
        todo = Todo()
        todo.loadFromKey(issue)
        todoList.append(todo.issueURL)
        
    pageData = {}
    pageData['pageNumber'] = page
    pageData['pageCount'] = pageCount
    pageData['todoList'] = todoList
        
    return pageData
示例#2
0
    def loadFromKey(self, key):
        r = todoRedis.connect()
        members = [attr for attr in dir(self) if not callable(getattr(self, attr)) and not attr.startswith("__")]

        if r.hlen(key) > 0:
            for m in members:
                setattr(self, m, r.hget(key, m))
示例#3
0
    def save(self, parent):
        key = KEY_FORMAT % (parent.key(), self.filePath.rsplit('/',1)[1], self.lineNumber)
        members = [attr for attr in dir(self) if not callable(getattr(self, attr)) and not attr.startswith("__")]

        # Save into the Repo's set
        r = todoRedis.connect()
        r.sadd('%s::todo' % (parent.key()), key)

        for m in members:
            r.hset(key, m, getattr(self, m))
示例#4
0
def getRepos():
    r = todoRedis.connect()
    repoList = []
    
    for key in r.smembers('repos'):
        repo = Repo()
        repo.loadFromKey(key)
        repoList.append(repo)
        
    return repoList
示例#5
0
def getQueueStats():
    r = todoRedis.connect()

    data = {}
    data['cloneCount'] = r.llen(RepoQueues.Cloning)
    data['parseCount'] = r.llen(RepoQueues.Parsing)
    data['postCount'] = r.llen(RepoQueues.Posting)
    data['postedIssueCount'] = r.llen(RepoQueues.RepoGY)
    data['repoCount'] = len(r.keys('repos::*')) - len(r.keys('repos::*:todo*'))
    
    return data
示例#6
0
def addNewRepo(ghRepo):
    r = todoRedis.connect()
    repo = Repo()
    repo.userName = ghRepo.owner.login
    repo.repoName= ghRepo.name
    repo.gitUrl = ghRepo.git_url
    repo.branch = ghRepo.default_branch
    
    repo.save()
    
    return repo
示例#7
0
    def save(self):
        members = [attr for attr in dir(self) if not callable(getattr(self, attr)) and
                                                 not attr.startswith("__") and
                                                 not attr == "Todos"]
        r = todoRedis.connect()
        
        r.sadd('repos', self.key())

        for m in members:
            r.hset(self.key(), m, getattr(self, m))

        for td in self.Todos:
            td.save(self)
示例#8
0
    def loadFromKey(self, key):
        members = [attr for attr in dir(self) if not callable(getattr(self, attr)) and
                                                 not attr.startswith("__") and
                                                 not attr == "Todos"]
        r = todoRedis.connect()

        if r.hlen(key) > 0:
            for m in members:
                setattr(self, m, r.hget(key, m))
        else:
            # "No keys found"
            return False

        for m in r.smembers(key+"::todo"):
            td = Todo()
            td.loadFromKey(m)
            self.Todos.append(td)

        return True
示例#9
0
def repoExists(userName, repoName):
    r = todoRedis.connect()
    return r.sismember('repos', 'repos::%s/%s' % (userName, repoName))
示例#10
0
def repoCount():
    r = todoRedis.connect()
    return r.scard('repos')