Weather: add new module

This commit is contained in:
李通洲
2022-09-29 17:05:01 +08:00
parent c72c6c4a27
commit 9cf95620a9
13 changed files with 113 additions and 9 deletions
+5
View File
@@ -188,6 +188,7 @@ static void defaultConfig(FFinstance* instance)
initModuleArg(&instance->config.locale);
initModuleArg(&instance->config.localIP);
initModuleArg(&instance->config.publicIP);
initModuleArg(&instance->config.weather);
initModuleArg(&instance->config.player);
initModuleArg(&instance->config.song);
initModuleArg(&instance->config.dateTime);
@@ -245,6 +246,9 @@ static void defaultConfig(FFinstance* instance)
instance->config.publicIpTimeout = 0;
ffStrbufInit(&instance->config.publicIpUrl);
instance->config.weatherTimeout = 0;
ffStrbufInitS(&instance->config.weatherOutputFormat, "%t+-+%C+(%l)");
ffStrbufInitA(&instance->config.osFile, 0);
ffStrbufInitA(&instance->config.playerName, 0);
@@ -361,6 +365,7 @@ void ffStart(FFinstance* instance)
{
ffPrepareCPUUsage();
ffPreparePublicIp(instance);
ffPrepareWeather(instance);
if(instance->config.multithreading)
startDetectionThreads(instance);
+6 -4
View File
@@ -6,7 +6,7 @@
#include <sys/socket.h>
#include <netdb.h>
int ffNetworkingSendHttpRequest(const char* host, const char* path, uint32_t timeout)
int ffNetworkingSendHttpRequest(const char* host, const char* path, const char* headers, uint32_t timeout)
{
struct addrinfo hints = {
.ai_family = AF_INET,
@@ -48,7 +48,9 @@ int ffNetworkingSendHttpRequest(const char* host, const char* path, uint32_t tim
ffStrbufAppendS(&command, path);
ffStrbufAppendS(&command, " HTTP/1.1\nHost: ");
ffStrbufAppendS(&command, host);
ffStrbufAppendS(&command, "\r\n\r\n");
ffStrbufAppendS(&command, "\r\n");
ffStrbufAppendS(&command, headers);
ffStrbufAppendS(&command, "\r\n");
if(send(sockfd, command.chars, command.length, 0) == -1)
{
@@ -73,9 +75,9 @@ void ffNetworkingRecvHttpResponse(int sockfd, FFstrbuf* buffer)
close(sockfd);
}
void ffNetworkingGetHttp(const char* host, const char* path, uint32_t timeout, FFstrbuf* buffer)
void ffNetworkingGetHttp(const char* host, const char* path, uint32_t timeout, const char* headers, FFstrbuf* buffer)
{
int sockfd = ffNetworkingSendHttpRequest(host, path, timeout);
int sockfd = ffNetworkingSendHttpRequest(host, path, headers, timeout);
if(sockfd > 0)
ffNetworkingRecvHttpResponse(sockfd, buffer);
}
+2 -2
View File
@@ -5,8 +5,8 @@
#include "util/FFstrbuf.h"
int ffNetworkingSendHttpRequest(const char* host, const char* path, uint32_t timeout);
int ffNetworkingSendHttpRequest(const char* host, const char* path, const char* headers, uint32_t timeout);
void ffNetworkingRecvHttpResponse(int sock, FFstrbuf* buffer);
void ffNetworkingGetHttp(const char* host, const char* path, uint32_t timeout, FFstrbuf* buffer);
void ffNetworkingGetHttp(const char* host, const char* path, uint32_t timeout, const char* headers, FFstrbuf* buffer);
#endif