mirror of https://gitlab.com/bashrc2/epicyon
				
				
				
			Link to exported theme
							parent
							
								
									acd8aaa50f
								
							
						
					
					
						commit
						b168fde295
					
				
							
								
								
									
										13
									
								
								daemon.py
								
								
								
								
							
							
						
						
									
										13
									
								
								daemon.py
								
								
								
								
							|  | @ -256,6 +256,7 @@ from cache import checkForChangedActor | ||||||
| from cache import storePersonInCache | from cache import storePersonInCache | ||||||
| from cache import getPersonFromCache | from cache import getPersonFromCache | ||||||
| from httpsig import verifyPostHeaders | from httpsig import verifyPostHeaders | ||||||
|  | from theme import exportTheme | ||||||
| from theme import isNewsThemeName | from theme import isNewsThemeName | ||||||
| from theme import getTextModeBanner | from theme import getTextModeBanner | ||||||
| from theme import setNewsAvatar | from theme import setNewsAvatar | ||||||
|  | @ -4147,6 +4148,18 @@ class PubServer(BaseHTTPRequestHandler): | ||||||
|                     print('WARN: profile update, no text ' + |                     print('WARN: profile update, no text ' + | ||||||
|                           'fields could be extracted from POST') |                           'fields could be extracted from POST') | ||||||
| 
 | 
 | ||||||
|  |             if fields.get('submitExportTheme'): | ||||||
|  |                 print('submitExportTheme') | ||||||
|  |                 themeDownloadPath = actorStr | ||||||
|  |                 if exportTheme(self.server.baseDir, | ||||||
|  |                                self.server.themeName): | ||||||
|  |                     themeDownloadPath += \ | ||||||
|  |                         '/exports/' + self.server.themeName + '.zip' | ||||||
|  |                 self._redirect_headers(themeDownloadPath, | ||||||
|  |                                        cookie, callingDomain) | ||||||
|  |                 self.server.POSTbusy = False | ||||||
|  |                 return | ||||||
|  | 
 | ||||||
|             # load the json for the actor for this user |             # load the json for the actor for this user | ||||||
|             actorFilename = \ |             actorFilename = \ | ||||||
|                 baseDir + '/accounts/' + \ |                 baseDir + '/accounts/' + \ | ||||||
|  |  | ||||||
							
								
								
									
										19
									
								
								theme.py
								
								
								
								
							
							
						
						
									
										19
									
								
								theme.py
								
								
								
								
							|  | @ -11,9 +11,28 @@ from utils import loadJson | ||||||
| from utils import saveJson | from utils import saveJson | ||||||
| from utils import getImageExtensions | from utils import getImageExtensions | ||||||
| from shutil import copyfile | from shutil import copyfile | ||||||
|  | from shutil import make_archive | ||||||
| from content import dangerousCSS | from content import dangerousCSS | ||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
|  | def exportTheme(baseDir: str, theme: str) -> bool: | ||||||
|  |     """Exports a theme as a zip file | ||||||
|  |     """ | ||||||
|  |     themeDir = baseDir + '/theme/' + theme | ||||||
|  |     if not os.path.isdir(themeDir): | ||||||
|  |         return False | ||||||
|  |     if not os.path.isdir(baseDir + '/exports'): | ||||||
|  |         os.mkdir(baseDir + '/exports') | ||||||
|  |     exportFilename = baseDir + '/exports/' + theme + '.zip' | ||||||
|  |     if os.path.isfile(exportFilename): | ||||||
|  |         os.remove(exportFilename) | ||||||
|  |     try: | ||||||
|  |         make_archive(exportFilename, 'zip', themeDir) | ||||||
|  |     except BaseException: | ||||||
|  |         pass | ||||||
|  |     return os.path.isfile(exportFilename) | ||||||
|  | 
 | ||||||
|  | 
 | ||||||
| def _getThemeFiles() -> []: | def _getThemeFiles() -> []: | ||||||
|     """Gets the list of theme style sheets |     """Gets the list of theme style sheets | ||||||
|     """ |     """ | ||||||
|  |  | ||||||
|  | @ -1347,7 +1347,7 @@ def htmlEditProfile(cssCache: {}, translate: {}, baseDir: str, path: str, | ||||||
|             translate['Export Theme'] + '</label><br>\n' |             translate['Export Theme'] + '</label><br>\n' | ||||||
|         graphicsStr += \ |         graphicsStr += \ | ||||||
|             '      <button type="submit" class="button" ' + \ |             '      <button type="submit" class="button" ' + \ | ||||||
|             'name="exportTheme">➤</button>\n' |             'name="submitExportTheme">➤</button>\n' | ||||||
| 
 | 
 | ||||||
|         graphicsStr += '    </div></details>\n' |         graphicsStr += '    </div></details>\n' | ||||||
| 
 | 
 | ||||||
|  |  | ||||||
		Loading…
	
		Reference in New Issue