mirror of https://gitlab.com/bashrc2/epicyon
				
				
				
			Page numbers for shared item search
							parent
							
								
									23462f1380
								
							
						
					
					
						commit
						41616734dd
					
				
							
								
								
									
										21
									
								
								daemon.py
								
								
								
								
							
							
						
						
									
										21
									
								
								daemon.py
								
								
								
								
							| 
						 | 
				
			
			@ -2204,8 +2204,17 @@ class PubServer(BaseHTTPRequestHandler):
 | 
			
		|||
            self.server.POSTbusy=False
 | 
			
		||||
            return
 | 
			
		||||
 | 
			
		||||
        # decision to follow in the web interface is confirmed
 | 
			
		||||
        if authorized and self.path.endswith('/searchhandle'):
 | 
			
		||||
        # a search was made
 | 
			
		||||
        if authorized and \
 | 
			
		||||
           (self.path.endswith('/searchhandle') or '/searchhandle?page=' in self.path):
 | 
			
		||||
            # get the page number
 | 
			
		||||
            pageNumber=1
 | 
			
		||||
            if '/searchhandle?page=' in self.path:
 | 
			
		||||
                pageNumberStr=self.path.split('/searchhandle?page=')[1]
 | 
			
		||||
                if pageNumberStr.isdigit():
 | 
			
		||||
                    pageNumber=int(pageNumberStr)
 | 
			
		||||
                self.path=self.path.split('?page=')[0]
 | 
			
		||||
 | 
			
		||||
            actorStr=self.path.replace('/searchhandle','')
 | 
			
		||||
            length = int(self.headers['Content-length'])
 | 
			
		||||
            searchParams=self.rfile.read(length).decode('utf-8')
 | 
			
		||||
| 
						 | 
				
			
			@ -2231,7 +2240,9 @@ class PubServer(BaseHTTPRequestHandler):
 | 
			
		|||
                    nickname=getNicknameFromActor(self.path)
 | 
			
		||||
                    if not self.server.session:
 | 
			
		||||
                        self.server.session= \
 | 
			
		||||
                            createSession(self.server.domain,self.server.port,self.server.useTor)
 | 
			
		||||
                            createSession(self.server.domain, \
 | 
			
		||||
                                          self.server.port, \
 | 
			
		||||
                                          self.server.useTor)
 | 
			
		||||
                    profileStr= \
 | 
			
		||||
                        htmlProfileAfterSearch(self.server.baseDir, \
 | 
			
		||||
                                               self.path.replace('/searchhandle',''), \
 | 
			
		||||
| 
						 | 
				
			
			@ -2251,7 +2262,9 @@ class PubServer(BaseHTTPRequestHandler):
 | 
			
		|||
                else:
 | 
			
		||||
                    # shared items search
 | 
			
		||||
                    sharedItemsStr= \
 | 
			
		||||
                        htmlSearchSharedItems(self.server.baseDir,searchStr)
 | 
			
		||||
                        htmlSearchSharedItems(self.server.baseDir, \
 | 
			
		||||
                                              searchStr,pageNumber, \
 | 
			
		||||
                                              maxPostsInFeed,actorStr)
 | 
			
		||||
                    if sharedItemsStr:
 | 
			
		||||
                        self._login_headers('text/html')
 | 
			
		||||
                        self.wfile.write(sharedItemsStr.encode('utf-8'))
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -35,7 +35,11 @@ from content import getMentionsFromHtml
 | 
			
		|||
from config import getConfigParam
 | 
			
		||||
from skills import getSkills
 | 
			
		||||
 | 
			
		||||
def htmlSearchSharedItems(baseDir: str,searchStr: str) -> str:
 | 
			
		||||
def htmlSearchSharedItems(baseDir: str,searchStr: str,pageNumber: int,resultsPerPage: int,actor: str) -> str:
 | 
			
		||||
    """Search results for shared items
 | 
			
		||||
    """
 | 
			
		||||
    currPage=1
 | 
			
		||||
    ctr=0
 | 
			
		||||
    sharedItemsForm=''
 | 
			
		||||
    searchStrLower=searchStr.replace('%2B','+').replace('%40','@').replace('%3A',':').replace('%23','#').lower().strip('\n')
 | 
			
		||||
    searchStrLowerList=searchStrLower.split('+')
 | 
			
		||||
| 
						 | 
				
			
			@ -55,7 +59,6 @@ def htmlSearchSharedItems(baseDir: str,searchStr: str) -> str:
 | 
			
		|||
                    sharesJson=commentjson.load(fp)
 | 
			
		||||
                for name,sharedItem in sharesJson.items():
 | 
			
		||||
                    matched=True
 | 
			
		||||
                    ctr=0
 | 
			
		||||
                    for searchSubstr in searchStrLowerList:
 | 
			
		||||
                        subStrMatched=False
 | 
			
		||||
                        searchSubstr=searchSubstr.strip()
 | 
			
		||||
| 
						 | 
				
			
			@ -70,18 +73,43 @@ def htmlSearchSharedItems(baseDir: str,searchStr: str) -> str:
 | 
			
		|||
                        if not subStrMatched:
 | 
			
		||||
                            matched=False
 | 
			
		||||
                            break
 | 
			
		||||
                        ctr+=1
 | 
			
		||||
                    if matched:
 | 
			
		||||
                        sharedItemsForm+='<div class="container">'
 | 
			
		||||
                        sharedItemsForm+='<p class="share-title">'+sharedItem['displayName']+'</p>'
 | 
			
		||||
                        sharedItemsForm+='<a href="'+sharedItem['imageUrl']+'">'
 | 
			
		||||
                        sharedItemsForm+='<img src="'+sharedItem['imageUrl']+'" alt="Item image"></a>'
 | 
			
		||||
                        sharedItemsForm+='<p>'+sharedItem['summary']+'</p>'
 | 
			
		||||
                        sharedItemsForm+='<p><b>Type:</b> '+sharedItem['itemType']+' '
 | 
			
		||||
                        sharedItemsForm+='<b>Category:</b> '+sharedItem['category']+' '
 | 
			
		||||
                        sharedItemsForm+='<b>Location:</b> '+sharedItem['location']+'</p>'
 | 
			
		||||
                        sharedItemsForm+='</div>'
 | 
			
		||||
                        resultsExist=True
 | 
			
		||||
                        if currPage==pageNumber:
 | 
			
		||||
                            sharedItemsForm+='<div class="container">'
 | 
			
		||||
                            sharedItemsForm+='<p class="share-title">'+sharedItem['displayName']+'</p>'
 | 
			
		||||
                            sharedItemsForm+='<a href="'+sharedItem['imageUrl']+'">'
 | 
			
		||||
                            sharedItemsForm+='<img src="'+sharedItem['imageUrl']+'" alt="Item image"></a>'
 | 
			
		||||
                            sharedItemsForm+='<p>'+sharedItem['summary']+'</p>'
 | 
			
		||||
                            sharedItemsForm+='<p><b>Type:</b> '+sharedItem['itemType']+' '
 | 
			
		||||
                            sharedItemsForm+='<b>Category:</b> '+sharedItem['category']+' '
 | 
			
		||||
                            sharedItemsForm+='<b>Location:</b> '+sharedItem['location']+'</p>'
 | 
			
		||||
                            sharedItemsForm+='</div>'
 | 
			
		||||
                            if not resultsExist and currPage>1:
 | 
			
		||||
                                # previous page link, needs to be a POST
 | 
			
		||||
                                sharedItemsForm+= \
 | 
			
		||||
                                    '<form method="POST" action="'+actor+'/searchhandle?page='+str(pageNumber-1)+'">' \
 | 
			
		||||
                                    '  <input type="hidden" name="actor" value="'+actor+'">' \
 | 
			
		||||
                                    '  <input type="hidden" name="searchtext" value="'+searchStrLower+'"><br>' \
 | 
			
		||||
                                    '  <center><a href="'+actor+'" type="submit" name="submitSearch">' \
 | 
			
		||||
                                    '    <img class="pageicon" src="/icons/pageup.png" title="Page up" alt="Page up"/></a>' \
 | 
			
		||||
                                    '  </center>' \
 | 
			
		||||
                                    '</form>'
 | 
			
		||||
                            resultsExist=True
 | 
			
		||||
                        ctr+=1
 | 
			
		||||
                        if ctr>=resultsPerPage:
 | 
			
		||||
                            currPage+=1
 | 
			
		||||
                            if currPage>pageNumber:
 | 
			
		||||
                                # next page link, needs to be a POST
 | 
			
		||||
                                sharedItemsForm+= \
 | 
			
		||||
                                    '<form method="POST" action="'+actor+'/searchhandle?page='+str(pageNumber+1)+'">' \
 | 
			
		||||
                                    '  <input type="hidden" name="actor" value="'+actor+'">' \
 | 
			
		||||
                                    '  <input type="hidden" name="searchtext" value="'+searchStrLower+'"><br>' \
 | 
			
		||||
                                    '  <center><a href="'+actor+'" type="submit" name="submitSearch">' \
 | 
			
		||||
                                    '    <img class="pageicon" src="/icons/pagedown.png" title="Page down" alt="Page down"/></a>' \
 | 
			
		||||
                                    '  </center>' \
 | 
			
		||||
                                    '</form>'
 | 
			
		||||
                                break
 | 
			
		||||
                            ctr=0
 | 
			
		||||
        if not resultsExist:
 | 
			
		||||
            sharedItemsForm+='<center><h5>No results</h5></center>'
 | 
			
		||||
        sharedItemsForm+=htmlFooter()
 | 
			
		||||
| 
						 | 
				
			
			@ -181,7 +209,7 @@ def htmlHashtagSearch(baseDir: str,hashtag: str,pageNumber: int,postsPerPage: in
 | 
			
		|||
 | 
			
		||||
    if endIndex>0:
 | 
			
		||||
        # next page link
 | 
			
		||||
        hashtagSearchForm+='<center><a href="/tags/'+hashtag+'?page='+str(pageNumber+1)+'"><img class="pageicon" src="/icons/pageup.png" title="Page up" alt="Page up"></a></center>'
 | 
			
		||||
        hashtagSearchForm+='<center><a href="/tags/'+hashtag+'?page='+str(pageNumber+1)+'"><img class="pageicon" src="/icons/pagedown.png" title="Page down" alt="Page down"></a></center>'
 | 
			
		||||
    hashtagSearchForm+=htmlFooter()
 | 
			
		||||
    return hashtagSearchForm
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
		Reference in New Issue