def addItem(url, title, sourceId): if(__getMySqlLength__(url) > MAX_URL_LENGTH): log.warn("URL too long: %s. From %s" % (url, sourceUrl)) return False title = __turncateTitle__(title, MAX_TITLE_LENGTH) if(not(exists(url, title, sourceId))): executeSql(ADD_ITEM, [url, title, sourceId]) return True return False
def getAllVotesByUser(userName): rows = executeSql(GET_ALL_VOTES_BY_USER, [userName]) result = [] for r in rows: assert len(r) == 2 (itemId, type) = r result.append(Vote(itemId, type)) return result
def getViewableSourceGroups(): result = [] rows = executeSql(GET_ALL_SOURCE_GROUPS) for r in rows: (name, isViewable) = r if(isViewable): result.append(name) return result
def getAllSources(): rows = executeSql(GET_ALL_SOURCES) result = [] for r in rows: assert len(r) == 3 (url, name, lookupId) = r s = Source(url, name, lookupId) result.append(s) return result
def getSourceIdToAssignedGroups(): result = {} rows = executeSql(GET_ALL_ASSIGNMETS) for r in rows: assert len(r) == 2 (sourceId, groupName) = r if sourceId not in result: result[sourceId] = [groupName] else: result[sourceId].append(groupName) return result
def calculateAllLinks(): errorCode = None #get all links if check.DbIsNotEmpty('ratings'): result = databaseConnection.executeSql("SELECT link FROM `ratings`", '', 'all') for row in result: calculateLinkRating(row) errorCode = 1 return {'errorCode': errorCode}
def urlToLookupId(url): record = executeSql(GET_ID, [url]) return record[0][0]
def getAllItems(): return executeSql(GET_ALL_ITEMS)
def updateVoteRecord(userName, itemId, newType): executeSql(UPDATE_VOTE_TYPE, [newType, itemId, userName])
def getOrderedLikedIds(): data = executeSql(GET_ALL_MORE_VOTE_ID_ORDERED, []) return [x[0] for x in data]
def getAllVoteUrlsByUser(userName): return set([i[0] for i in executeSql(GET_ALL_VOTED_URL_BY_USER, [userName])])
def getAllItemsForUrl(url): return [i[0] for i in executeSql(GET_ITEMS_FOR_URL, [url])]
def getSourceUrlTitleAndUrl(item_id): return executeSql(GET_ITEM_BY_ID, item_id)[0]
def getAllNonExpiredIds(): return [i[0] for i in executeSql(GET_IDS_RESTRICTED_BY_TIME)]
def getAllSourceGroupNames(): result = [] rows = executeSql(GET_ALL_SOURCE_GROUPS) for r in rows: result.append(r[0]) return result
def addSourceGroupAssignment(lookupId, sourceGroupName): executeSql(ADD_GROUP_ASSIGNMENT, [lookupId, sourceGroupName])
def getSavedPasswordHash(userName): result = executeSql(GET_PASSWORD_HASH, [userName]) if(len(result) == 1): return result[0][0] else: return None
def getAllUserNames(): return [i[0] for i in executeSql(GET_ALL_USER_NAMES)]
def addUser(name, passwordPlainText, location=None): passwordHash = __hashPassword__(passwordPlainText) if(location is not None): executeSql(INSERT_USER, [name, passwordHash, 'NULL']) else: executeSql(INSERT_USER_NO_LOCATION, [name, passwordHash])
def addSource(url, name): executeSql(ADD_SOURCE, [url.value, name])
def deleteVote(userName, itemId): executeSql(DELETE_VOTE, [itemId, userName])
def getItemIdsForSource(lookupId): return [i[0] for i in executeSql(GET_ITEMS_FOR_SOURCE, [lookupId])]
def addVote(userName, itemId, voteType): executeSql(ADD_VOTE, [userName, itemId, voteType])
def __getMySqlLength__(str): SQL = "select length(%s)" output = executeSql(SQL, [str]) return output[0][0]