示例#1
0
 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)
示例#2
0
 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)
示例#3
0
    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)