# Copyright 2020 Alex Woroschilow ([email protected]) # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # # http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. import hexdi console = hexdi.resolve('console') if not console: raise Exception('Console service not found') @console.task( name=['search', 'find', 'lookup'], description= "<string>\tFind an application in the repository using the given string as an application name" ) @hexdi.inject('config', 'apprepo') def main(options=None, args=None, config=None, apprepo=None): from bs4 import BeautifulSoup def strip_tags(html=None): if html is None: return None soup = BeautifulSoup(html, "html5lib") [x.extract() for x in soup.find_all('script')]
class OptionParser(optparse.OptionParser): def __init__(self): super(OptionParser, self).__init__() self.add_option("--loglevel", default=logging.INFO, dest="loglevel", help="Logging level") self.add_option("--gui", default='qt5', dest="gui", help="Interface type") configfile = '~/.config/apprepo/default.conf' self.add_option( "--config", default=os.path.expanduser(configfile), dest="config", help="Config file location, default: {}".format(configfile)) if __name__ == "__main__": parser = hexdi.resolve('optparse') (options, args) = parser.parse_args() log_format = '[%(relativeCreated)d][%(name)s] %(levelname)s - %(message)s' logging.basicConfig(level=options.loglevel, format=log_format) application = application.Application(options, args) sys.exit(application.exec_(options, args))