Esempio n. 1
0
 def __init__(self):
     console.show_activity('Loading...')
     self.docsetFolder = 'Docsets'
     self.setup()
     self.dbmanager = DBManager.DBManager()
     self.theme_manager = ThemeManager.ThemeManager('Themes')
     self.docset_manager = DocsetManager.DocsetManager(
         'Images/icons', 'Images/types', ServerManager.ServerManager())
     self.cheatsheet_manager = CheatsheetManager.CheatsheetManager(
         ServerManager.ServerManager(), 'Images/icons', 'Images/types')
     self.usercontributed_manager = UserContributedManager.UserContributedManager(
         ServerManager.ServerManager(), 'Images/icons', 'Images/types')
     self.stackoverflow_manager = StackOverflowManager.StackOverflowManager(
         ServerManager.ServerManager(), 'Images/icons', 'Images/types')
     self.webSearchManager = WebSearchManager.WebSearchManager(
         'Images/types')
     self.main_view = self.setup_main_view()
     self.navigation_view = self.setup_navigation_view()
     self.docset_management_view = self.setup_docset_management_view()
     self.cheatsheet_management_view = self.setup_cheatsheetmanagement_view(
     )
     self.usercontributed_management_view = self.setup_usercontributedmanagement_view(
     )
     self.stackoverflow_management_view = self.setup_stackoverflowmanagement_view(
     )
     self.settings_view = self.setup_settings_view()
     self.docsetView = self.setup_docset_view()
     self.docsetIndexView = self.setup_docsetindex_view()
     self.docsetWebView = self.setup_docsetweb_view()
     UISearchControllerWrapper.Theme_manager = self.theme_manager
     console.hide_activity()
Esempio n. 2
0
 def installUserContributed(self, filename, usercontributed,
                            refresh_main_view):
     extract_location = os.path.join(
         self.userContributedFolder,
         '_' + usercontributed.name.replace('/', '_'),
         '_' + usercontributed.version.replace('/', '_'))
     usercontributed.status = 'Preparing to install: This might take a while.'
     tar = tarfile.open(filename, 'r:gz')
     n = [name for name in tar.getnames() if '/' not in name][0]
     m = os.path.join(extract_location, n)
     tar.extractall(path=extract_location,
                    members=self.track_progress(tar, usercontributed,
                                                len(tar.getmembers())))
     tar.close()
     encodedImg = usercontributed.imageData
     dbManager = DBManager.DBManager()
     otherAtt = {}
     otherAtt['author'] = usercontributed.authorName
     otherAtt['hasVersions'] = usercontributed.hasVersions
     dbManager.DocsetInstalled(usercontributed.name, m, 'usercontributed',
                               str(encodedImg), usercontributed.version,
                               str(otherAtt))
     os.remove(filename)
     if usercontributed in self.downloading:
         self.downloading.remove(usercontributed)
     self.indexUserContributed(usercontributed, refresh_main_view, m)
Esempio n. 3
0
	def deleteStackOverflow(self, stackoverflow, post_action):
		but = console.alert('Are you sure?', 'Would you like to delete the docset, ' +  stackoverflow.name, 'Ok')
		if but == 1:
			dbmanager = DBManager.DBManager()
			dbmanager.DocsetRemoved(stackoverflow.id)
			shutil.rmtree(stackoverflow.path)
			stackoverflow.status = 'online'
			post_action()
			stackoverflow.path = None
Esempio n. 4
0
 def deleteDocset(self, docset, post_action):
     but = console.alert(
         'Are you sure?', 'Would you like to delete the docset, ' +
         docset['name'] + '\n This may take a while.', 'Ok')
     if but == 1:
         dbmanager = DBManager.DBManager()
         dbmanager.DocsetRemoved(docset['id'])
         shutil.rmtree(docset['path'])
         docset['status'] = 'online'
         docset['path'] = None
         post_action()
Esempio n. 5
0
 def __getDownloadedDocsets(self):
     dbManager = DBManager.DBManager()
     t = dbManager.InstalledDocsetsByType('standard')
     ds = []
     for d in t:
         aa = {}
         aa['name'] = d[1]
         aa['id'] = d[0]
         aa['path'] = os.path.join(os.path.abspath('.'), d[2])
         aa['image'] = self.__getIconWithName(d[4])
         ds.append(aa)
     return ds
Esempio n. 6
0
 def deleteUserContributed(self, usercontributed, post_action):
     but = console.alert(
         'Are you sure?',
         'Would you like to delete the docset, ' + usercontributed.name,
         'Ok')
     if but == 1:
         dbmanager = DBManager.DBManager()
         dbmanager.DocsetRemoved(usercontributed.id)
         shutil.rmtree(usercontributed.path)
         usercontributed.status = 'online'
         post_action()
         usercontributed.path = None
Esempio n. 7
0
 def deleteCheatsheet(self, cheatsheet, post_action):
     but = console.alert(
         'Are you sure?',
         'Would you like to delete the cheatsheet, ' + cheatsheet.name,
         'Ok')
     if but == 1:
         dbmanager = DBManager.DBManager()
         dbmanager.DocsetRemoved(cheatsheet.id)
         shutil.rmtree(cheatsheet.path)
         cheatsheet.status = 'online'
         post_action()
         cheatsheet.path = None
Esempio n. 8
0
 def __getDownloadedCheatsheets(self):
     ds = []
     dbManager = DBManager.DBManager()
     t = dbManager.InstalledDocsetsByType('cheatsheet')
     ds = []
     for d in t:
         aa = Cheatsheet()
         aa.name = d[1]
         aa.id = d[0]
         aa.path = os.path.join(os.path.abspath('.'), d[2])
         aa.image = self.__getIconWithName(d[4])
         ds.append(aa)
     return ds
Esempio n. 9
0
 def deleteDocset(self, docset, post_action, confirm=True):
     but = 1
     if confirm:
         but = console.alert(
             'Are you sure?',
             'Would you like to delete the docset, ' + docset.name, 'Ok')
     if but == 1:
         dbmanager = DBManager.DBManager()
         dbmanager.DocsetRemoved(docset.id)
         shutil.rmtree(docset.path)
         docset.status = 'Not Installed'
         if not post_action == None:
             post_action()
         docset.path = None
Esempio n. 10
0
	def __getDownloadedStackOverflows(self):
		ds = []
		dbManager = DBManager.DBManager()
		t = dbManager.InstalledDocsetsByType('stackoverflow')
		ds = []
		for d in t:
			aa = StackOverflow()
			aa.name = d[1]
			aa.id = d[0]
			aa.path = os.path.join(os.path.abspath('.'),d[2])
			aa.image = self.__getIconWithName(d[4])
			aa.type = d[6]
			ds.append(aa)
		return ds
Esempio n. 11
0
 def __getInstalledDocsets(self):
     ds = []
     dbManager = DBManager.DBManager()
     t = dbManager.InstalledDocsetsByType('transfer')
     ds = []
     for d in t:
         aa = Transfer()
         aa.name = d[1]
         aa.id = d[0]
         aa.path = os.path.join(os.path.abspath('.'), d[2])
         aa.image = self.__getIconWithName(d[4])
         aa.status = 'Installed'
         # aa.version = d[5]
         ds.append(aa)
     return ds
Esempio n. 12
0
 def deleteDocset(self, docset, post_action, confirm=True):
     but = 1
     if confirm:
         but = console.alert(
             'Are you sure?', 'Would you like to delete the docset, ' +
             docset['name'] + '\n This may take a while.', 'Ok')
     if but == 1:
         p = os.path.join(self.docsetFolder,
                          '_' + docset['name'].replace('/', '_'),
                          '_' + docset['version'].replace('/', '_'))
         dbmanager = DBManager.DBManager()
         dbmanager.DocsetRemoved(docset['id'])
         shutil.rmtree(p)
         docset['status'] = 'online'
         docset['path'] = None
         if not post_action == None:
             post_action()
Esempio n. 13
0
 def installCheatsheet(self, filename, cheatsheet, refresh_main_view):
     extract_location = self.cheatsheetFolder
     cheatsheet.status = 'Preparing to install: This might take a while.'
     tar = tarfile.open(filename, 'r:gz')
     n = [name for name in tar.getnames() if '/' not in name][0]
     m = os.path.join(self.cheatsheetFolder, n)
     tar.extractall(path=extract_location,
                    members=self.track_progress(tar, cheatsheet,
                                                len(tar.getmembers())))
     tar.close()
     os.remove(filename)
     dbManager = DBManager.DBManager()
     dbManager.DocsetInstalled(cheatsheet.name, m, 'cheatsheet',
                               'cheatsheet', cheatsheet.version)
     if cheatsheet in self.downloading:
         self.downloading.remove(cheatsheet)
     self.indexCheatsheet(cheatsheet, refresh_main_view, m)
Esempio n. 14
0
	def installStackOverflow(self, filename, stackoverflow, refresh_main_view):
		extract_location = self.stackoverflowFolder
		stackoverflow.status = 'Preparing to install: This might take a while.'
		tar = tarfile.open(filename, 'r:gz')
		n = [name for name in tar.getnames() if '/' not in name][0]
		m = os.path.join(self.stackoverflowFolder, n)
		tar.extractall(path=extract_location, members = self.track_progress(tar, stackoverflow, len(tar.getmembers())))
		tar.close()
		os.remove(filename)
		dbManager = DBManager.DBManager()
		icon = 'soonline'
		if stackoverflow.type == 'Offline':
			icon = 'sooffline'
		dbManager.DocsetInstalled(stackoverflow.name+stackoverflow.type, m, 'stackoverflow', icon, stackoverflow.version, stackoverflow.type)
		if stackoverflow in self.downloading:
			self.downloading.remove(stackoverflow)
		self.indexStackOverflow(stackoverflow, refresh_main_view, m)
Esempio n. 15
0
 def installDocset(self, filename, docset, refresh_main_view):
     extract_location = os.path.join(
         self.docsetFolder, '_' + docset['name'].replace('/', '_'),
         '_' + docset['version'].replace('/', '_'))
     docset['status'] = 'Preparing to install: This might take a while.'
     tar = tarfile.open(filename, 'r:gz')
     n = [name for name in tar.getnames() if '/' not in name][0]
     m = os.path.join(extract_location, n)
     tar.extractall(path=extract_location,
                    members=self.track_progress(tar, docset,
                                                len(tar.getmembers())))
     tar.close()
     os.remove(filename)
     dbManager = DBManager.DBManager()
     dbManager.DocsetInstalled(docset['name'], m, 'standard',
                               docset['iconName'], docset['version'])
     self.indexDocset(docset, refresh_main_view, m)
Esempio n. 16
0
 def __getDownloadedDocsets(self):
     dbManager = DBManager.DBManager()
     t = dbManager.InstalledDocsetsByType('standard')
     ds = []
     feeds = self.__getDocsetFeeds()
     for d in t:
         aa = {}
         aa['name'] = d[1]
         aa['id'] = d[0]
         aa['path'] = os.path.join(os.path.abspath('.'), d[2])
         aa['image'] = self.__getIconWithName(d[4])
         aa['version'] = d[5]
         aa['hasVersions'] = False
         for f in feeds:
             if f['name'] == aa['name']:
                 aa['hasVersions'] = f['hasVersions']
         ds.append(aa)
     return ds
Esempio n. 17
0
 def __getDownloadedUserContributed(self):
     dbManager = DBManager.DBManager()
     t = dbManager.InstalledDocsetsByType('usercontributed')
     ds = []
     for d in t:
         aa = UserContributed()
         aa.name = d[1]
         aa.id = d[0]
         aa.path = os.path.join(os.path.abspath('.'), d[2])
         #aa.image = self.__getLocalIcon(d[2])
         imgData = str(d[4])
         if not imgData == '':
             imgdata = base64.standard_b64decode(imgData)
             aa.image = ui.Image.from_data(imgdata)
         else:
             aa.image = self.__getIconWithName('Other')
         aa.authorName = d[6]
         ds.append(aa)
     return ds
Esempio n. 18
0
 def __init__(self):
     console.show_activity('Loading...')
     self.docsetFolder = 'Docsets'
     self.setup()
     self.dbmanager = DBManager.DBManager()
     self.docset_manager = DocsetManager.DocsetManager(
         'Images/icons', 'Images/types', ServerManager.ServerManager())
     self.cheatsheet_manager = CheatsheetManager.CheatsheetManager(
         ServerManager.ServerManager(), 'Images/icons', 'Images/types')
     self.usercontributed_manager = UserContributedManager.UserContributedManager(
         ServerManager.ServerManager(), 'Images/icons', 'Images/types')
     self.main_view = self.setup_main_view()
     self.navigation_view = self.setup_navigation_view()
     self.docset_management_view = self.setup_docset_management_view()
     self.cheatsheet_management_view = self.setup_cheatsheetmanagement_view(
     )
     self.usercontributed_management_view = self.setup_usercontributedmanagement_view(
     )
     self.settings_view = self.setup_settings_view()
     console.hide_activity()
Esempio n. 19
0
 def __installDocset(self, docset, refresh):
     extract_location = self.docsetFolder
     docset.stats = 'Preparing to install: This might take a while.'
     refresh()
     zip = ZipFile(docset.zipPath, mode='r')
     ll = [name for name in zip.namelist() if '.docset' in name]
     if len(ll) > 0:
         n = ll[0]
         m = os.path.join(self.docsetFolder, n)
         docset.stats = 'Preparing to extract'
         refresh()
         l = zip.infolist()
         zip.extractall(path=extract_location,
                        members=self.track_progress(l, docset, len(l),
                                                    refresh))
         zip.close()
         os.remove(docset.zipPath)
         plistpath = os.path.join(m, self.plistPath)
         name = docset.name
         image = ''
         with open(plistpath, 'rb') as f:
             pp = plistlib.load(f)
             if 'CFBundleName' in pp.keys():
                 name = pp['CFBundleName']
             if 'CFBundleIdentifier' in pp.keys():
                 image = pp['CFBundleIdentifier']
         dbManager = DBManager.DBManager()
         dbManager.DocsetInstalled(name, m, 'transfer', image, 0.0)
         if docset in self.__installingDocsets:
             self.__installingDocsets.remove(docset)
         docset.status = 'Cleaning up...'
         refresh()
         cleanup_path = os.path.join(self.docsetFolder, '__MACOSX')
         if os.path.exists(cleanup_path):
             shutil.rmtree(cleanup_path)
         docset.status = 'Installed'
         refresh()
     else:
         raise Exception('Unknown docset structure')
Esempio n. 20
0
 def __getDownloadedUserContributed(self):
     dbManager = DBManager.DBManager()
     t = dbManager.InstalledDocsetsByType('usercontributed')
     ds = []
     for d in t:
         aa = UserContributed()
         aa.name = d[1]
         aa.id = d[0]
         aa.path = os.path.join(os.path.abspath('.'), d[2])
         imgData = str(d[4])
         if not imgData == '':
             imgdata = base64.standard_b64decode(imgData)
             aa.image = ui.Image.from_data(imgdata)
         else:
             aa.image = self.__getIconWithName('Other')
         od = yaml.load(d[6])
         if type(od) is type({}):
             aa.authorName = od['author']
             aa.hasVersions = od['hasVersions']
         else:
             aa.authorName = od
         aa.version = d[5]
         ds.append(aa)
     return ds
Esempio n. 21
0
 def installDocset(self, filename, docset, refresh_main_view):
     extract_location = self.docsetFolder
     if docset['name'] == 'Drupal 7':
         extract_location = os.path.join(self.docsetFolder,
                                         'drupal7install')
     elif docset['name'] == 'Drupal 8':
         extract_location = os.path.join(self.docsetFolder,
                                         'drupal8install')
     elif docset['name'] == 'Java SE6':
         extract_location = os.path.join(self.docsetFolder,
                                         'javase6install')
     elif docset['name'] == 'Java SE7':
         extract_location = os.path.join(self.docsetFolder,
                                         'javase7install')
     elif docset['name'] == 'Java SE8':
         extract_location = os.path.join(self.docsetFolder,
                                         'javase8install')
     elif docset['name'] == 'Lua 5.1':
         extract_location = os.path.join(self.docsetFolder, 'lua51install')
     elif docset['name'] == 'Lua 5.2':
         extract_location = os.path.join(self.docsetFolder, 'lua52install')
     elif docset['name'] == 'Lua 5.3':
         extract_location = os.path.join(self.docsetFolder, 'lua53install')
     elif docset['name'] == 'Qt 4':
         extract_location = os.path.join(self.docsetFolder, 'qt4install')
     elif docset['name'] == 'Qt 5':
         extract_location = os.path.join(self.docsetFolder, 'qt5install')
     elif docset['name'] == 'Ruby':
         extract_location = os.path.join(self.docsetFolder, 'rubyinstall')
     elif docset['name'] == 'Ruby 2':
         extract_location = os.path.join(self.docsetFolder, 'ruby2install')
     elif docset['name'] == 'Ruby on Rails 3':
         extract_location = os.path.join(self.docsetFolder,
                                         'rubyonrails3install')
     elif docset['name'] == 'Ruby on Rails 4':
         extract_location = os.path.join(self.docsetFolder,
                                         'rubyonrails4install')
     elif docset['name'] == 'Ruby on Rails 5':
         extract_location = os.path.join(self.docsetFolder,
                                         'rubyonrails5install')
     elif docset['name'] == 'Zend Framework 1':
         extract_location = os.path.join(self.docsetFolder,
                                         'zendframework1install')
     elif docset['name'] == 'Zend Framework 2':
         extract_location = os.path.join(self.docsetFolder,
                                         'zendfrmework2install')
     elif docset['name'] == 'Zend Framework 3':
         extract_location = os.path.join(self.docsetFolder,
                                         'zendframework3install')
     docset['status'] = 'Preparing to install: This might take a while.'
     tar = tarfile.open(filename, 'r:gz')
     n = [name for name in tar.getnames() if '/' not in name][0]
     m = os.path.join(self.docsetFolder, n)
     tar.extractall(path=extract_location,
                    members=self.track_progress(tar, docset,
                                                len(tar.getmembers())))
     tar.close()
     os.remove(filename)
     if docset['name'] == 'Drupal 7':
         p = os.path.join(extract_location, 'Drupal.docset')
         n = 'Drupal7.docset'
         m = os.path.join(self.docsetFolder, n)
         b = os.path.join(extract_location, n)
         os.rename(p, b)
         shutil.move(b, m)
         shutil.rmtree(extract_location)
     elif docset['name'] == 'Drupal 8':
         p = os.path.join(extract_location, 'Drupal.docset')
         n = 'Drupal8.docset'
         m = os.path.join(self.docsetFolder, n)
         b = os.path.join(extract_location, n)
         os.rename(p, b)
         shutil.move(b, m)
         shutil.rmtree(extract_location)
     elif docset['name'] == 'Java SE6':
         p = os.path.join(extract_location, 'Java.docset')
         n = 'JavaSE6.docset'
         m = os.path.join(self.docsetFolder, n)
         b = os.path.join(extract_location, n)
         os.rename(p, b)
         shutil.move(b, m)
         shutil.rmtree(extract_location)
     elif docset['name'] == 'Java SE7':
         p = os.path.join(extract_location, 'Java.docset')
         n = 'JavaSE7.docset'
         m = os.path.join(self.docsetFolder, n)
         b = os.path.join(extract_location, n)
         os.rename(p, b)
         shutil.move(b, m)
         shutil.rmtree(extract_location)
     elif docset['name'] == 'Java SE8':
         p = os.path.join(extract_location, 'Java.docset')
         n = 'JavaSE8.docset'
         m = os.path.join(self.docsetFolder, n)
         b = os.path.join(extract_location, n)
         os.rename(p, b)
         shutil.move(b, m)
         shutil.rmtree(extract_location)
     elif docset['name'] == 'Lua 5.1':
         p = os.path.join(extract_location, 'Lua.docset')
         n = 'Lua51.docset'
         m = os.path.join(self.docsetFolder, n)
         b = os.path.join(extract_location, n)
         os.rename(p, b)
         shutil.move(b, m)
         shutil.rmtree(extract_location)
     elif docset['name'] == 'Lua 5.2':
         p = os.path.join(extract_location, 'Lua.docset')
         n = 'Lua52.docset'
         m = os.path.join(self.docsetFolder, n)
         b = os.path.join(extract_location, n)
         os.rename(p, b)
         shutil.move(b, m)
         shutil.rmtree(extract_location)
     elif docset['name'] == 'Lua 5.3':
         p = os.path.join(extract_location, 'Lua.docset')
         n = 'Lua53.docset'
         m = os.path.join(self.docsetFolder, n)
         b = os.path.join(extract_location, n)
         os.rename(p, b)
         shutil.move(b, m)
         shutil.rmtree(extract_location)
     elif docset['name'] == 'Qt 4':
         p = os.path.join(extract_location, 'Qt.docset')
         n = 'Qt4.docset'
         m = os.path.join(self.docsetFolder, n)
         b = os.path.join(extract_location, n)
         os.rename(p, b)
         shutil.move(b, m)
         shutil.rmtree(extract_location)
     elif docset['name'] == 'Qt 5':
         p = os.path.join(extract_location, 'Qt.docset')
         n = 'Qt5.docset'
         m = os.path.join(self.docsetFolder, n)
         b = os.path.join(extract_location, n)
         os.rename(p, b)
         shutil.move(b, m)
         shutil.rmtree(extract_location)
     elif docset['name'] == 'Ruby':
         p = os.path.join(extract_location, 'Ruby.docset')
         n = 'Ruby1.docset'
         m = os.path.join(self.docsetFolder, n)
         b = os.path.join(extract_location, n)
         os.rename(p, b)
         shutil.move(b, m)
         shutil.rmtree(extract_location)
     elif docset['name'] == 'Ruby 2':
         p = os.path.join(extract_location, 'Ruby.docset')
         n = 'Ruby2.docset'
         m = os.path.join(self.docsetFolder, n)
         b = os.path.join(extract_location, n)
         os.rename(p, b)
         shutil.move(b, m)
         shutil.rmtree(extract_location)
     elif docset['name'] == 'Ruby on Rails 3':
         p = os.path.join(extract_location, 'Ruby on Rails.docset')
         n = 'Ruby on Rails3.docset'
         m = os.path.join(self.docsetFolder, n)
         b = os.path.join(extract_location, n)
         os.rename(p, b)
         shutil.move(b, m)
         shutil.rmtree(extract_location)
     elif docset['name'] == 'Ruby on Rails 4':
         p = os.path.join(extract_location, 'Ruby on Rails.docset')
         n = 'Ruby on Rails4.docset'
         m = os.path.join(self.docsetFolder, n)
         b = os.path.join(extract_location, n)
         os.rename(p, b)
         shutil.move(b, m)
         shutil.rmtree(extract_location)
     elif docset['name'] == 'Ruby on Rails 5':
         p = os.path.join(extract_location, 'Ruby on Rails.docset')
         n = 'Ruby on Rails5.docset'
         m = os.path.join(self.docsetFolder, n)
         b = os.path.join(extract_location, n)
         os.rename(p, b)
         shutil.move(b, m)
         shutil.rmtree(extract_location)
     elif docset['name'] == 'Zend Framework 1':
         p = os.path.join(extract_location, 'Zend_Framework.docset')
         n = 'Zend_Framework1.docset'
         m = os.path.join(self.docsetFolder, n)
         b = os.path.join(extract_location, n)
         os.rename(p, b)
         shutil.move(b, m)
         shutil.rmtree(extract_location)
     elif docset['name'] == 'Zend Framework 2':
         p = os.path.join(extract_location, 'Zend_Framework.docset')
         n = 'Zend_Framework2.docset'
         m = os.path.join(self.docsetFolder, n)
         b = os.path.join(extract_location, n)
         os.rename(p, b)
         shutil.move(b, m)
         shutil.rmtree(extract_location)
     elif docset['name'] == 'Zend Framework 3':
         p = os.path.join(extract_location, 'Zend_Framework.docset')
         n = 'Zend_Framework3.docset'
         m = os.path.join(self.docsetFolder, n)
         b = os.path.join(extract_location, n)
         os.rename(p, b)
         shutil.move(b, m)
         shutil.rmtree(extract_location)
     dbManager = DBManager.DBManager()
     dbManager.DocsetInstalled(docset['name'], m, 'standard',
                               docset['iconName'], '1.0')
     self.indexDocset(docset, refresh_main_view, m)