def exportFitting(self, event): sPort = Port.getInstance() fitID = self.mainFrame.getActiveFit() self.statusbar.SetStatusText("", 0) if fitID is None: self.statusbar.SetStatusText( "Please select an active fitting in the main window", 1) return self.statusbar.SetStatusText("Sending request and awaiting response", 1) sCrest = Crest.getInstance() try: sFit = Fit.getInstance() data = sPort.exportCrest(sFit.getFit(fitID)) res = sCrest.postFitting(self.getActiveCharacter(), data) self.statusbar.SetStatusText( "%d: %s" % (res.status_code, res.reason), 0) try: text = json.loads(res.text) self.statusbar.SetStatusText(text['message'], 1) except ValueError: pyfalog.warning("Value error on loading JSON.") self.statusbar.SetStatusText("", 1) except requests.exceptions.ConnectionError: msg = "Connection error, please check your internet connection" pyfalog.error(msg) self.statusbar.SetStatusText(msg)
def exportFitting(self, event): sPort = Port.getInstance() fitID = self.mainFrame.getActiveFit() self.statusbar.SetStatusText("", 0) if fitID is None: self.statusbar.SetStatusText("Please select an active fitting in the main window", 1) return self.statusbar.SetStatusText("Sending request and awaiting response", 1) sCrest = Crest.getInstance() try: sFit = Fit.getInstance() data = sPort.exportCrest(sFit.getFit(fitID)) res = sCrest.postFitting(self.getActiveCharacter(), data) self.statusbar.SetStatusText("%d: %s" % (res.status_code, res.reason), 0) try: text = json.loads(res.text) self.statusbar.SetStatusText(text['message'], 1) except ValueError: self.statusbar.SetStatusText("", 1) except requests.exceptions.ConnectionError: self.statusbar.SetStatusText("Connection error, please check your internet connection", 1)
def fileImportDialog(self, event): """Handles importing single/multiple EVE XML / EFT cfg fit files""" sPort = Port.getInstance() dlg = wx.FileDialog(self, "Open One Or More Fitting Files", wildcard=("EVE XML fitting files (*.xml)|*.xml|" "EFT text fitting files (*.cfg)|*.cfg|" "All Files (*)|*"), style=wx.FD_OPEN | wx.FD_FILE_MUST_EXIST | wx.FD_MULTIPLE) if dlg.ShowModal() == wx.ID_OK: self.progressDialog = wx.ProgressDialog( "Importing fits", " " * 100, # set some arbitrary spacing to create width in window parent=self, style=wx.PD_APP_MODAL | wx.PD_ELAPSED_TIME) self.progressDialog.message = None sPort.importFitsThreaded(dlg.GetPaths(), self.fileImportCallback) self.progressDialog.ShowModal() try: dlg.Destroy() except PyDeadObjectError: pyfalog.error( "Tried to destroy an object that doesn't exist in <fileImportDialog>." )
def importFitting(self, event): selection = self.fitView.fitSelection if not selection: return data = self.fitTree.fittingsTreeCtrl.GetItemData(selection) sPort = Port.getInstance() import_type, fits = sPort.importFitFromBuffer(data) self.mainFrame._openAfterImport(fits)
def exportFitting(self, event): sPort = Port.getInstance() fitID = self.mainFrame.getActiveFit() self.statusbar.SetStatusText("", 0) if fitID is None: self.statusbar.SetStatusText( "Please select an active fitting in the main window", 1) return self.statusbar.SetStatusText("Sending request and awaiting response", 1) sEsi = Esi.getInstance() sFit = Fit.getInstance() exportCharges = self.exportChargesCb.GetValue() try: data = sPort.exportESI(sFit.getFit(fitID), exportCharges) except ESIExportException as e: msg = str(e) if not msg: msg = "Failed to generate export data" pyfalog.warning(msg) self.statusbar.SetStatusText(msg, 1) return activeChar = self.getActiveCharacter() if activeChar is None: msg = "Need at least one ESI character to export" pyfalog.warning(msg) self.statusbar.SetStatusText(msg, 1) return res = sEsi.postFitting(activeChar, data) try: res.raise_for_status() self.statusbar.SetStatusText("", 0) self.statusbar.SetStatusText(res.reason, 1) except requests.exceptions.ConnectionError: msg = "Connection error, please check your internet connection" pyfalog.error(msg) self.statusbar.SetStatusText("ERROR", 0) self.statusbar.SetStatusText(msg, 1) except ESIExportException as ex: pyfalog.error(ex) self.statusbar.SetStatusText("ERROR", 0) self.statusbar.SetStatusText( "{} - {}".format(res.status_code, res.reason), 1) except APIException as ex: try: ESIExceptionHandler(self, ex) except (KeyboardInterrupt, SystemExit): raise except Exception as ex: self.statusbar.SetStatusText("ERROR", 0) self.statusbar.SetStatusText( "{} - {}".format(res.status_code, res.reason), 1) pyfalog.error(ex)
def exportFitting(self, event): sPort = Port.getInstance() fitID = self.mainFrame.getActiveFit() self.statusbar.SetStatusText("", 0) if fitID is None: self.statusbar.SetStatusText( _t("Please select an active fitting in the main window"), 1) return self.statusbar.SetStatusText( _t("Sending request and awaiting response"), 1) sEsi = Esi.getInstance() sFit = Fit.getInstance() exportCharges = self.exportChargesCb.GetValue() try: data = sPort.exportESI(sFit.getFit(fitID), exportCharges) except ESIExportException as e: msg = str(e) if not msg: msg = _t("Failed to generate export data") pyfalog.warning(msg) self.statusbar.SetStatusText(msg, 1) return activeChar = self.getActiveCharacter() if activeChar is None: msg = _t("Need at least one ESI character to export") pyfalog.warning(msg) self.statusbar.SetStatusText(msg, 1) return try: res = sEsi.postFitting(activeChar, data) res.raise_for_status() self.statusbar.SetStatusText("", 0) self.statusbar.SetStatusText(res.reason, 1) except requests.exceptions.ConnectionError: msg = _t("Connection error, please check your internet connection") pyfalog.error(msg) self.statusbar.SetStatusText(_t("ERROR"), 0) self.statusbar.SetStatusText(msg, 1) except APIException as ex: pyfalog.error(ex) self.statusbar.SetStatusText(_t("ERROR"), 0) self.statusbar.SetStatusText( "HTTP {} - {}".format(ex.status_code, ex.response["error"]), 1) try: ESIExceptionHandler(ex) except: # don't need to do anything - we should already get the error in ex.response pass except Exception as ex: self.statusbar.SetStatusText(_t("ERROR"), 0) self.statusbar.SetStatusText("Unknown error", 1) pyfalog.error(ex)
def exportFitting(self, event): sPort = Port.getInstance() fitID = self.mainFrame.getActiveFit() self.statusbar.SetStatusText("", 0) if fitID is None: self.statusbar.SetStatusText( "Please select an active fitting in the main window", 1) return self.statusbar.SetStatusText("Sending request and awaiting response", 1) sEsi = Esi.getInstance() sFit = Fit.getInstance() data = sPort.exportESI(sFit.getFit(fitID)) res = sEsi.postFitting(self.getActiveCharacter(), data) try: res.raise_for_status() self.statusbar.SetStatusText("", 0) self.statusbar.SetStatusText(res.reason, 1) except requests.exceptions.ConnectionError: msg = "Connection error, please check your internet connection" pyfalog.error(msg) self.statusbar.SetStatusText("ERROR", 0) self.statusbar.SetStatusText(msg, 1) except ESIExportException as ex: pyfalog.error(ex) self.statusbar.SetStatusText("ERROR", 0) self.statusbar.SetStatusText( "{} - {}".format(res.status_code, res.reason), 1) except APIException as ex: try: ESIExceptionHandler(self, ex) except Exception as ex: self.statusbar.SetStatusText("ERROR", 0) self.statusbar.SetStatusText( "{} - {}".format(res.status_code, res.reason), 1) pyfalog.error(ex)
def showExportDialog(self, event): """ Export active fit """ sFit = Fit.getInstance() fit = sFit.getFit(self.getActiveFit()) defaultFile = "%s - %s.xml" % (fit.ship.item.name, fit.name) if fit else None dlg = wx.FileDialog(self, "Save Fitting As...", wildcard="EVE XML fitting files (*.xml)|*.xml", style=wx.FD_SAVE, defaultFile=defaultFile) if dlg.ShowModal() == wx.ID_OK: format_ = dlg.GetFilterIndex() path = dlg.GetPath() if format_ == 0: sPort = Port.getInstance() output = sPort.exportXml(None, fit) if '.' not in os.path.basename(path): path += ".xml" else: print("oops, invalid fit format %d" % format_) try: dlg.Destroy() except PyDeadObjectError: pyfalog.error( "Tried to destroy an object that doesn't exist in <showExportDialog>." ) return with open(path, "w", encoding="utf-8") as openfile: openfile.write(output) openfile.close() try: dlg.Destroy() except PyDeadObjectError: pyfalog.error( "Tried to destroy an object that doesn't exist in <showExportDialog>." )
def exportFitting(self, event): sPort = Port.getInstance() fitID = self.mainFrame.getActiveFit() self.statusbar.SetStatusText("", 0) if fitID is None: self.statusbar.SetStatusText( "Please select an active fitting in the main window", 1) return self.statusbar.SetStatusText("Sending request and awaiting response", 1) sEsi = Esi.getInstance() try: sFit = Fit.getInstance() data = sPort.exportESI(sFit.getFit(fitID)) res = sEsi.postFitting(self.getActiveCharacter(), data) self.statusbar.SetStatusText("", 0) self.statusbar.SetStatusText("", 1) # try: # text = json.loads(res.text) # self.statusbar.SetStatusText(text['message'], 1) # except ValueError: # pyfalog.warning("Value error on loading JSON.") # self.statusbar.SetStatusText("", 1) except requests.exceptions.ConnectionError: msg = "Connection error, please check your internet connection" pyfalog.error(msg) self.statusbar.SetStatusText(msg) except ESIExportException as ex: pyfalog.error(ex) self.statusbar.SetStatusText("ERROR", 0) self.statusbar.SetStatusText(ex.args[0], 1) except APIException as ex: ESIExceptionHandler(self, ex)
def exportFitting(self, event): sPort = Port.getInstance() fitID = self.mainFrame.getActiveFit() self.statusbar.SetStatusText("", 0) if fitID is None: self.statusbar.SetStatusText("Please select an active fitting in the main window", 1) return self.statusbar.SetStatusText("Sending request and awaiting response", 1) sEsi = Esi.getInstance() sFit = Fit.getInstance() data = sPort.exportESI(sFit.getFit(fitID)) res = sEsi.postFitting(self.getActiveCharacter(), data) try: res.raise_for_status() self.statusbar.SetStatusText("", 0) self.statusbar.SetStatusText(res.reason, 1) except requests.exceptions.ConnectionError: msg = "Connection error, please check your internet connection" pyfalog.error(msg) self.statusbar.SetStatusText("ERROR", 0) self.statusbar.SetStatusText(msg, 1) except ESIExportException as ex: pyfalog.error(ex) self.statusbar.SetStatusText("ERROR", 0) self.statusbar.SetStatusText("{} - {}".format(res.status_code, res.reason), 1) except APIException as ex: try: ESIExceptionHandler(self, ex) except Exception as ex: self.statusbar.SetStatusText("ERROR", 0) self.statusbar.SetStatusText("{} - {}".format(res.status_code, res.reason), 1) pyfalog.error(ex)