113 lines
4.6 KiB
Diff
113 lines
4.6 KiB
Diff
diff -Naur indicator-china-weather-3.1.0/src/geoipworker.cpp indicator-china-weather-3.1.0~/src/geoipworker.cpp
|
||
--- indicator-china-weather-3.1.0/src/geoipworker.cpp 2021-11-27 03:59:19.000000000 +0800
|
||
+++ indicator-china-weather-3.1.0~/src/geoipworker.cpp 2022-01-10 14:49:04.598862385 +0800
|
||
@@ -264,29 +264,33 @@
|
||
|
||
const QString automaicCity()
|
||
{
|
||
- QString ip;
|
||
- QString city;
|
||
+// QString ip;
|
||
+// QString city;
|
||
|
||
- getIpAndCityByUbuntu(UbuntuUrl, ip, city);
|
||
- if (ip.isEmpty() || ip == "0.0.0.0") {
|
||
- ip = getIpByPconline(PconlineUrl);
|
||
- }
|
||
-
|
||
-// qDebug() << "ip:" << ip;
|
||
-
|
||
- if (city.isEmpty()) {
|
||
- city = getCityFromIPAddr(ip);//根据ip从geoip库定位城市
|
||
- if (city.isEmpty()) {
|
||
- city = getCityFromIpByAmap(ip);//根据ip从高德API定位城市,该方式使用高德key,访问次数有限
|
||
- }
|
||
- if (city.isEmpty()) {
|
||
- city = getCityFromIpByTaobao(ip);//根据ip从淘宝service定位城市,该方式访问速度慢,可能访问失败
|
||
- }
|
||
- }
|
||
-
|
||
-// qDebug() << "city:" << city;
|
||
-
|
||
- return city;
|
||
+// getIpAndCityByUbuntu(UbuntuUrl, ip, city);
|
||
+// if (ip.isEmpty() || ip == "0.0.0.0") {
|
||
+// ip = getIpByPconline(PconlineUrl);
|
||
+// }
|
||
+// if (city.isEmpty()) {
|
||
+// city = getCityFromIPAddr(ip);//根据ip从geoip库定位城市
|
||
+// if (city.isEmpty()) {
|
||
+// city = getCityFromIpByAmap(ip);//根据ip从高德API定位城市,该方式使用高德key,访问次数有限
|
||
+// }
|
||
+// if (city.isEmpty()) {
|
||
+// city = getCityFromIpByTaobao(ip);//根据ip从淘宝service定位城市,该方式访问速度慢,可能访问失败
|
||
+// }
|
||
+// }
|
||
+// return city;
|
||
+ QNetworkAccessManager *manager = new QNetworkAccessManager();
|
||
+ QNetworkReply *reply = manager->get(QNetworkRequest(QUrl("http://myip.ipip.net")));
|
||
+ QByteArray responseData ;
|
||
+ QEventLoop eventLoop;
|
||
+ QObject::connect(manager,&QNetworkAccessManager::finished,&eventLoop,&QEventLoop::quit);
|
||
+ eventLoop.exec();
|
||
+ responseData = reply->readAll();
|
||
+ QString str = responseData;
|
||
+ QStringList respList = str.split(' ');
|
||
+ return respList[5];
|
||
}
|
||
|
||
} // namespace
|
||
diff -Naur indicator-china-weather-3.1.0/src/geoipworker.h indicator-china-weather-3.1.0~/src/geoipworker.h
|
||
--- indicator-china-weather-3.1.0/src/geoipworker.h 2021-11-27 03:59:19.000000000 +0800
|
||
+++ indicator-china-weather-3.1.0~/src/geoipworker.h 2022-01-10 14:49:04.574862040 +0800
|
||
@@ -21,6 +21,10 @@
|
||
#define GEOIP_WORKER_H
|
||
|
||
#include <QObject>
|
||
+#include <QNetworkAccessManager>
|
||
+#include <QNetworkReply>
|
||
+#include <QNetworkRequest>
|
||
+#include <QEventLoop>
|
||
|
||
class QNetworkAccessManager;
|
||
class QNetworkReply;
|
||
diff -Naur indicator-china-weather-3.1.0/src/mainwindow.cpp indicator-china-weather-3.1.0~/src/mainwindow.cpp
|
||
--- indicator-china-weather-3.1.0/src/mainwindow.cpp 2021-11-27 03:59:19.000000000 +0800
|
||
+++ indicator-china-weather-3.1.0~/src/mainwindow.cpp 2022-01-10 14:49:04.606862500 +0800
|
||
@@ -361,11 +361,12 @@
|
||
//根据获取到网络探测的结果分别处理
|
||
connect(m_weatherManager, &WeatherManager::nofityNetworkStatus, this, [=] (const QString &status) {
|
||
if (status == "OK") {
|
||
- //m_weatherManager->startAutoLocationTask();//开始自动定位城市
|
||
+ m_weatherManager->startAutoLocationTask();//开始自动定位城市
|
||
|
||
//CN101010100,beijing,北京,CN,China,中国
|
||
- // m_weatherManager->startGetTheWeatherData("101010100");
|
||
+// m_weatherManager->startGetTheWeatherData("101010100");
|
||
QStringList listCityId = getCityList().split(",");
|
||
+ qDebug()<<"listCityId:"<<listCityId;
|
||
m_weatherManager->startGetTheWeatherData(listCityId.at(0));
|
||
} else {
|
||
if (status == "Fail") {
|
||
@@ -381,6 +382,9 @@
|
||
connect(m_weatherManager, &WeatherManager::requestAutoLocationData, this, [=] (const CitySettingData &info, bool success) {
|
||
if (success) {
|
||
//自动定位城市成功后,更新各个ui,然后获取天气数据
|
||
+ m_weatherManager->startGetTheWeatherData(info.id);
|
||
+
|
||
+
|
||
} else {
|
||
//自动定位城市失败后,获取天气数据
|
||
}
|
||
diff -Naur indicator-china-weather-3.1.0/src/weathermanager.cpp indicator-china-weather-3.1.0~/src/weathermanager.cpp
|
||
--- indicator-china-weather-3.1.0/src/weathermanager.cpp 2021-11-27 03:59:19.000000000 +0800
|
||
+++ indicator-china-weather-3.1.0~/src/weathermanager.cpp 2022-01-10 14:49:04.559861824 +0800
|
||
@@ -165,7 +165,6 @@
|
||
}
|
||
file.close();
|
||
}
|
||
-
|
||
if (autoSuccess) {
|
||
emit this->requestAutoLocationData(info, true);
|
||
} else {
|