diff --git a/gn_tools/processing/gbif.py b/gn_tools/processing/gbif.py index 1bae9ef..596566c 100644 --- a/gn_tools/processing/gbif.py +++ b/gn_tools/processing/gbif.py @@ -2,10 +2,10 @@ import json import time # Import PyQt libs -from PyQt5.QtCore import QObject, pyqtSignal, QUrl, Qt, QVariant -from PyQt5.QtGui import QColor -from PyQt5.QtNetwork import QNetworkRequest, QNetworkReply -from PyQt5.QtWidgets import QDialog, QPushButton, QApplication, QVBoxLayout, QHBoxLayout, QButtonGroup, QCheckBox, QLabel +from qgis.PyQt.QtCore import QObject, pyqtSignal, QUrl, Qt, QVariant +from qgis.PyQt.QtGui import QColor +from qgis.PyQt.QtNetwork import QNetworkRequest, QNetworkReply +from qgis.PyQt.QtWidgets import QDialog, QPushButton, QApplication, QVBoxLayout, QHBoxLayout, QButtonGroup, QCheckBox, QLabel # Import PyQgis libs from qgis.utils import iface from qgis.core import QgsProject, QgsFeature, QgsDataSourceUri, QgsRectangle, QgsNetworkAccessManager, QgsVectorLayer, QgsPointXY, QgsWkbTypes, QgsMapLayerProxyModel, QgsGeometry, QgsCoordinateReferenceSystem, QgsCoordinateTransform, QgsField @@ -60,7 +60,7 @@ class GetTaxrefId(QObject): url = "https://api.checklistbank.org/nameusage/search?content=SCIENTIFIC_NAME&datasetKey=2008&facet=datasetKey&facet=rank&facet=issue&facet=status&facet=nomStatus&facet=nameType&facet=field&facet=authorship&facet=authorshipYear&facet=extinct&facet=environment&facet=origin&limit=50&offset=0&q={nom}&rank={rank}&type=PREFIX".format(nom=nom.split("(")[0], rank=rank.lower()) print(url) request = QNetworkRequest(QUrl(url)) - request.setHeader(QNetworkRequest.ContentTypeHeader, "application/json") + request.setHeader(QNetworkRequest.KnownHeaders(0), "application/json") reply = self.network_manager.get(request) reply.finished.connect(lambda: self.handle_finished(reply, feature_id)) self._iterate_names += 1 @@ -68,7 +68,7 @@ class GetTaxrefId(QObject): def handle_finished(self, reply, feature_id): self._pending_downloads -= 1 - if reply.error() != QNetworkReply.NoError: + if reply.error() != QNetworkReply.NetworkError(0): print(f"code: {reply.error()} message: {reply.errorString()}") if reply.error() == 403: print("Service down") @@ -146,14 +146,14 @@ class ImportDataGbif(QObject): self.nb_request = 1 print(url) request = QNetworkRequest(url) - request.setHeader(QNetworkRequest.ContentTypeHeader, "application/json") + request.setHeader(QNetworkRequest.KnownHeaders(0), "application/json") reply = self.network_manager.get(request) reply.finished.connect(lambda: self.handle_finished(reply)) self._pending_downloads += 1 def handle_finished(self, reply): self._pending_downloads -= 1 - if reply.error() != QNetworkReply.NoError: + if reply.error() != QNetworkReply.NetworkError(0): print(f"code: {reply.error()} message: {reply.errorString()}") if reply.error() == 403: print("Service down") diff --git a/gn_tools/processing/login.py b/gn_tools/processing/login.py index 338dc98..da1680e 100644 --- a/gn_tools/processing/login.py +++ b/gn_tools/processing/login.py @@ -8,8 +8,8 @@ from qgis.PyQt.QtCore import QByteArray, QJsonDocument, QObject, QUrl, pyqtSigna from qgis.PyQt.QtNetwork import QNetworkReply, QNetworkRequest from qgis.PyQt.QtWidgets import QAction, QMessageBox, QDialog -from PyQt5.QtCore import Qt -from PyQt5.QtWidgets import QApplication +from qgis.PyQt.QtCore import Qt +from qgis.PyQt.QtWidgets import QApplication # from PyQt6.QtCore import Qt # from PyQt6.QtWidgets import QApplication @@ -42,7 +42,7 @@ class GetLogin(QDialog): # self.total_zh = 0 # PyQt5 - Version - QApplication.setOverrideCursor(Qt.WaitCursor) + QApplication.setOverrideCursor(Qt.CursorShape(3)) # PyQt6 - Version # QApplication.setOverrideCursor(Qt.CursorShape.WaitCursor) self._pending_downloads = 0 @@ -57,14 +57,14 @@ class GetLogin(QDialog): QApplication.restoreOverrideCursor() # If reply is an error or reply is a redirection, login is not accepted print(reply.attribute( - QNetworkRequest.HttpStatusCodeAttribute + QNetworkRequest.Attribute(0) )) print('Login : ',reply.error()) self.network_manager.cookieStatus = reply.attribute( - QNetworkRequest.HttpStatusCodeAttribute + QNetworkRequest.Attribute(0) ) if ( - reply.error() != QNetworkReply.NoError + reply.error() != QNetworkReply.NetworkError(0) or self.network_manager.cookieStatus != 200 ): # Error code 299 means the logins are invalid @@ -98,7 +98,7 @@ class GetLogin(QDialog): else: self.cookies = self.network_manager.cookieJar() self.is_connect.setText("Good Job !") - + QApplication.setOverrideCursor(Qt.CursorShape(0)) # If the authenfication configuration already exists, # modify it with the new values # self.manager_config.setConfigMap( @@ -156,7 +156,7 @@ class GetLogin(QDialog): } print(url) request = QNetworkRequest(url) - request.setHeader(QNetworkRequest.ContentTypeHeader, "application/json") + request.setHeader(QNetworkRequest.KnownHeaders(0), "application/json") document = QJsonDocument(data_json) print(document.toJson()) reply = self.network_manager.post(request, document.toJson()) diff --git a/gn_tools/processing/status.py b/gn_tools/processing/status.py index ec6668a..f6f8d4c 100644 --- a/gn_tools/processing/status.py +++ b/gn_tools/processing/status.py @@ -15,7 +15,7 @@ from qgis.PyQt.QtCore import ( pyqtSignal, QJsonDocument, Qt, - QTextCodec + # QTextCodec ) from qgis.PyQt.QtNetwork import QNetworkReply, QNetworkRequest from qgis.PyQt.QtWidgets import ( @@ -294,7 +294,7 @@ class PivotStatus(QDialog): self.cd_nom = cd_nom self.url_api = self.domain_url + __api_cd_sta__ - # QApplication.setOverrideCursor(Qt.WaitCursor) + # QApplication.setOverrideCursor(Qt.CursorShape(3)) self.multi_dep = True self.cookie = (self.network_manager.cookieJar() @@ -325,17 +325,17 @@ class PivotStatus(QDialog): + ','.join(map(str,cd_nom)) ) request = QNetworkRequest(url) - request.setHeader(QNetworkRequest.ContentTypeHeader, "application/json") - request.setHeader(QNetworkRequest.CookieHeader, self.cookie) + request.setHeader(QNetworkRequest.KnownHeaders(0), "application/json") + request.setHeader(QNetworkRequest.KnownHeaders(4), self.cookie) reply = self.network_manager.get(request) reply.finished.connect(lambda: self.import_finished(reply)) def import_finished(self, reply): self._pending_downloads -= 1 - print(reply.attribute(QNetworkRequest.HttpStatusCodeAttribute)) + print(reply.attribute(QNetworkRequest.Attribute(0))) - if reply.attribute(QNetworkRequest.HttpStatusCodeAttribute) != 200: + if reply.attribute(QNetworkRequest.Attribute(0)) != 200: print(f"code: {reply.error()} message: {reply.errorString()}") else: data_request = reply.readAll().data().decode() @@ -449,9 +449,9 @@ class PivotStatus(QDialog): layername = data['layer_name'] fcString = json.dumps(data) - codec = QTextCodec.codecForName("UTF-8") - fields = QgsJsonUtils.stringToFields(fcString, codec) - feats = QgsJsonUtils.stringToFeatureList(fcString, fields, codec) + # codec = QTextCodec.codecForName("UTF-8") + fields = QgsJsonUtils.stringToFields(fcString) + feats = QgsJsonUtils.stringToFeatureList(fcString, fields) vl = QgsVectorLayer(geom_type, layername, "memory") if vl.sourceCrs() != self.layer_crs: diff --git a/gn_tools/processing/widget.py b/gn_tools/processing/widget.py index 4983494..146deb2 100644 --- a/gn_tools/processing/widget.py +++ b/gn_tools/processing/widget.py @@ -17,7 +17,7 @@ from qgis.PyQt.QtCore import ( QObject, QUrl, pyqtSignal, - QTextCodec, + # QTextCodec, Qt ) from qgis.PyQt.QtNetwork import QNetworkReply, QNetworkRequest @@ -68,7 +68,8 @@ class ParamWidget(QDialog): self.print_change ) else : - QApplication.setOverrideCursor(Qt.WaitCursor) + QApplication.setOverrideCursor(Qt.CursorShape(3)) + print(network_manager.cookieJar().cookiesForUrl(QUrl(self.domain_url))) self.cookie = (network_manager.cookieJar() .cookiesForUrl(QUrl(self.domain_url))[0] ) @@ -104,9 +105,9 @@ class ParamWidget(QDialog): def import_finished(self, reply): self._pending_downloads -= 1 QApplication.restoreOverrideCursor() - print(reply.attribute(QNetworkRequest.HttpStatusCodeAttribute)) + print(reply.attribute(QNetworkRequest.Attribute(0))) - if reply.attribute(QNetworkRequest.HttpStatusCodeAttribute) != 200: + if reply.attribute(QNetworkRequest.Attribute(0)) != 200: print(f"code: {reply.error()} message: {reply.errorString()}") else: self.lst_exp = ['Synthèse taxons'] @@ -146,8 +147,8 @@ class ParamWidget(QDialog): # Define request properties (cookie, header) request = QNetworkRequest(url) - request.setHeader(QNetworkRequest.ContentTypeHeader, "application/json") - request.setHeader(QNetworkRequest.CookieHeader, self.cookie) + request.setHeader(QNetworkRequest.KnownHeaders(0), "application/json") + request.setHeader(QNetworkRequest.KnownHeaders(4), self.cookie) if apiFilter: doc = QJsonDocument(self.json_filter) @@ -194,7 +195,7 @@ class LoadingImport(QDialog): # self.json_filter = {} # self.total_zh = 0 - QApplication.setOverrideCursor(Qt.WaitCursor) + QApplication.setOverrideCursor(Qt.CursorShape(3)) self._pending_downloads = 0 self.run() @@ -283,10 +284,10 @@ class LoadingImport(QDialog): # Define request properties (cookie, header) request = QNetworkRequest(url) - request.setHeader(QNetworkRequest.ContentTypeHeader, "application/json") + request.setHeader(QNetworkRequest.KnownHeaders(0), "application/json") if self.cookie: - request.setHeader(QNetworkRequest.CookieHeader, self.cookie) + request.setHeader(QNetworkRequest.KnownHeaders(4), self.cookie) if 'Synthèse taxons' in self.source : reply = self.network_manager.post(request,doc.toJson()) @@ -297,9 +298,9 @@ class LoadingImport(QDialog): def loading_finished(self,reply): self._pending_downloads -= 1 - print(reply.attribute(QNetworkRequest.HttpStatusCodeAttribute)) + print(reply.attribute(QNetworkRequest.Attribute(0))) - if reply.attribute(QNetworkRequest.HttpStatusCodeAttribute) != 200: + if reply.attribute(QNetworkRequest.Attribute(0)) != 200: print(f"code: {reply.error()} message: {reply.errorString()}") else: data_request = reply.readAll().data().decode() @@ -399,9 +400,8 @@ class LoadingImport(QDialog): fcString = json.dumps(data) - codec = QTextCodec.codecForName("UTF-8") - fields = QgsJsonUtils.stringToFields(fcString, codec) - feats = QgsJsonUtils.stringToFeatureList(fcString, fields, codec) + fields = QgsJsonUtils.stringToFields(fcString) + feats = QgsJsonUtils.stringToFeatureList(fcString, fields) if self.api: crs_api = QgsCoordinateReferenceSystem(self.api['geometry_srid'])