def __init__(self, replyid, body, voteCount, previousvote, uname, ucolor, timestamp, tint, *args, **kwargs): super(replyCell, self).__init__(**kwargs) previousvote = int(previousvote) timeSincePost = int(time.time()) - int(timestamp) UserColor = ucolor.split(','); if tint == True: with self.canvas: Color(0.78823529411, 0.78823529411, 0.78823529411, 0.35) self.background = Rectangle(size=self.size, pos=self.pos) self.bind(pos=self.updateCanvas, size=self.updateCanvas) replyBody = Label(text=body, pos_hint={'x':0.0175, 'center_y':0.55}, size_hint=(0.7, 0.9), text_size=(dp(250), dp(90)), font_size="15sp", color=(0,0,0,1), halign="left", valign="middle") username = Label(text=uname, pos_hint={'x':0.0175, 'y':0.0175}, size_hint=(0.7, 0.3), text_size=(dp(250), dp(35)), font_size="13sp", color=(float(UserColor[0]), float(UserColor[1]), float(UserColor[2]), 0.5), halign="left") votes = Label(text=voteCount, pos_hint={'right':0.9825, 'center_y':0.5}, size_hint=(0.25, None), text_size=(None, None), font_size="20sp", color=(0,0,0,1)) voteButtons = BoxLayout(orientation="horizontal", size_hint=(0.25, 0.25), pos_hint={'right':0.9825, 'y':0.05}) upvote = imageButtonLocal(source="", size_hint_x=0.5) downvote = imageButtonLocal(source="", size_hint_x=0.5) if previousvote != 0: if previousvote == 1: upvote.source = "data/up_clicked.png" upvote.bind(on_press=lambda vtcnt: updateVoteDisplay(upvote, downvote, votes, voteCount, 0)) downvote.source = "data/down_unclicked.png" downvote.bind(on_press=lambda vtcnt: updateVoteDisplay(upvote, downvote, votes, voteCount, -2)) else: upvote.source = "data/up_unclicked.png" upvote.bind(on_press=lambda vtcnt: updateVoteDisplay(upvote, downvote, votes, voteCount, 2)) downvote.source = "data/down_clicked.png" downvote.bind(on_press=lambda vtcnt: updateVoteDisplay(upvote, downvote, votes, voteCount, 0)) else: upvote.source = "data/up_unclicked.png" upvote.bind(on_press=lambda vtcnt: updateVoteDisplay(upvote, downvote, votes, voteCount, 1)) downvote.source = "data/down_unclicked.png" downvote.bind(on_press=lambda vtcnt: updateVoteDisplay(upvote, downvote, votes, voteCount, -1)) upvote.bind(on_press=lambda upvt: vote(App.get_running_app().backend, App.get_running_app().usrid, replyid, "upvote", "reply")) downvote.bind(on_press=lambda dnvt: vote(App.get_running_app().backend, App.get_running_app().usrid, replyid, "downvote", "reply")) voteButtons.add_widget(upvote) voteButtons.add_widget(downvote) timeSince = Label(text=formatTime(timeSincePost), pos_hint={'right':0.9825, 'top':0.9825}, size_hint=(0.7, 0.25), text_size=(dp(250), dp(35)), font_size="13sp", color=(0.11764705882352941, 0.4588235294117647, 0.8, 0.5), halign="right", valign="top") self.add_widget(replyBody) self.add_widget(username) self.add_widget(votes) self.add_widget(voteButtons) self.add_widget(timeSince)
def processPosts(self, request, result, *args, **kwargs): """Processes data into postCells and puts them into homeScreen's ScrollView""" self.ids.homescr_output.clear_widgets() i = 0 connectionError = False try: jsonResponse = json.loads(result) jsonData = jsonResponse["Data"] for post in jsonData: Title = post['Title'] Caption = post['Caption'] Location = post['Location'] Votes = post['Votes'] Userid = post['Userid'] Postid = post['Postid'] Timestamp = post['Timestamp'] MediaType = post['MediaType'] Previousvote = post['Previousvote'] source_url = App.get_running_app().backend + Location if int(MediaType) == 0: img = imageButton(source=App.get_running_app().backend + "uploads/{}/thumbnails/{}".format(Location.split('/')[1], Location.split('/')[2])) elif int(MediaType) == 1: img = imageButtonLocal(source="data/videoplaceholder.png") if i%2 == 0: postFormat = postCell(Postid, Title, Votes, Previousvote, img, source_url, Timestamp, MediaType, Caption, True) else: postFormat = postCell(Postid, Title, Votes, Previousvote, img, source_url, Timestamp, MediaType, Caption, False) self.ids.homescr_output.add_widget(postFormat) i += 1 self.postCount = i self.updatePageArrows() self.ids.homescr_output.add_widget(FloatLayout()) self.ids.homescr_output.add_widget(FloatLayout()) except: self.overlayMessage(3) connectionError = True if connectionError == False: if i > 0: self.overlayMessage(1) else: self.overlayMessage(2)
def __init__(self, postid, title, voteCount, previousvote, img, source_url, timestamp, mediaType, caption, tint, *args, **kwargs): super(postCell, self).__init__(**kwargs) self.Title = title self.Caption = caption previousvote = int(previousvote) mediaType = int(mediaType) timeSincePost = int(time.time()) - int(timestamp) if tint == True: with self.canvas: Color(0.78823529411, 0.78823529411, 0.78823529411, 0.35) self.background = Rectangle(size=self.size, pos=self.pos) self.bind(pos=self.updateCanvas, size=self.updateCanvas) img.bind(on_press=lambda thumbbtn: Logger.info("flicknik: {} thumbnail pressed".format(postid))) if mediaType == 0: img.bind(on_press=lambda thumbphotoscrn: self.displayMedia(mediaType,source_url,postid)) elif mediaType == 1: img.bind(on_press=lambda thumbphotoscrn: self.displayMedia(mediaType,source_url,postid)) postTitle = Label(text=title, pos_hint={'center_x':0.5, 'top':0.7}, size_hint=(0.5, None), text_size=(dp(150), dp(75)), font_size="15sp", color=(0,0,0,1), halign="left", valign="top") votes = Label(text=voteCount, pos_hint={'right':0.9825, 'center_y':0.5}, size_hint=(0.25, None), text_size=(None, None), font_size="20sp", color=(0,0,0,1)) voteButtons = BoxLayout(orientation="horizontal", size_hint=(0.25, 0.25), pos_hint={'right':0.9825, 'y':0.05}) upvote = imageButtonLocal(source="", size_hint_x=0.5) downvote = imageButtonLocal(source="", size_hint_x=0.5) if previousvote != 0: if previousvote == 1: upvote.source = "data/up_clicked.png" upvote.bind(on_press=lambda vtcnt: updateVoteDisplay(upvote, downvote, votes, voteCount, 0)) downvote.source = "data/down_unclicked.png" downvote.bind(on_press=lambda vtcnt: updateVoteDisplay(upvote, downvote, votes, voteCount, -2)) else: upvote.source = "data/up_unclicked.png" upvote.bind(on_press=lambda vtcnt: updateVoteDisplay(upvote, downvote, votes, voteCount, 2)) downvote.source = "data/down_clicked.png" downvote.bind(on_press=lambda vtcnt: updateVoteDisplay(upvote, downvote, votes, voteCount, 0)) else: upvote.source = "data/up_unclicked.png" upvote.bind(on_press=lambda vtcnt: updateVoteDisplay(upvote, downvote, votes, voteCount, 1)) downvote.source = "data/down_unclicked.png" downvote.bind(on_press=lambda vtcnt: updateVoteDisplay(upvote, downvote, votes, voteCount, -1)) upvote.bind(on_press=lambda upvt: vote(App.get_running_app().backend, App.get_running_app().usrid, postid, "upvote", "submission")) downvote.bind(on_press=lambda dnvt: vote(App.get_running_app().backend, App.get_running_app().usrid, postid, "downvote", "submission")) voteButtons.add_widget(upvote) voteButtons.add_widget(downvote) # Note: spaces are in the labelbuttons for spacing purposes buttonBar = BoxLayout(orientation="horizontal", pos_hint={'center_x':0.5, 'y':0.0175}, size_hint=(0.425, 0.15)) reply = labelButton(text="Reply ", font_size="13sp", color=(0.11764705882352941, 0.4588235294117647, 0.8, 0.5)) reply.bind(on_press=lambda replyqueue: getReplyScreen(postid, title, voteCount, previousvote, img, source_url, timestamp, mediaType, caption)) report = labelButton(text="Report", font_size="13sp", color=(0.11764705882352941, 0.4588235294117647, 0.8, 0.5)) report.bind(on_press=lambda reportnotify: self.queuePopup("report", postid)) block = labelButton(text=" Block", font_size="13sp", color=(0.11764705882352941, 0.4588235294117647, 0.8, 0.5)) block.bind(on_press=lambda blocknotify: self.queuePopup("block", postid)) hide = labelButton(text=" Hide", font_size="13sp", color=(0.11764705882352941, 0.4588235294117647, 0.8, 0.5)) hide.bind(on_press=lambda hidenotify: self.queuePopup("hide", postid)) buttonBar.add_widget(reply) buttonBar.add_widget(report) buttonBar.add_widget(hide) buttonBar.add_widget(block) imgholder = BoxLayout(orientation="horizontal", size_hint=(0.25, 1), pos_hint={'right':0.2625, 'top':1}) imgholder.add_widget(img) timeSince = Label(text=formatTime(timeSincePost), pos_hint={'right':0.9825, 'top':0.9825}, size_hint=(0.7, 0.25), text_size=(dp(250), dp(35)), font_size="13sp", color=(0.11764705882352941, 0.4588235294117647, 0.8, 0.5), halign="right", valign="top") self.add_widget(voteButtons) self.add_widget(buttonBar) self.add_widget(imgholder) self.add_widget(postTitle) self.add_widget(votes) self.add_widget(timeSince)