added c++ doc and replaced ifndef with pragma once
This commit is contained in:
parent
904cd2e96a
commit
52cc5f204b
@ -1,30 +1,24 @@
|
|||||||
cmake_minimum_required(VERSION 3.7)
|
cmake_minimum_required(VERSION 3.7)
|
||||||
project(iprefresher VERSION 1.0.1 DESCRIPTION "mylib description")
|
project(iprefresher VERSION 1.0.1 DESCRIPTION "Dynu ip refresher")
|
||||||
|
|
||||||
set(CMAKE_CXX_STANDARD 17)
|
set(CMAKE_CXX_STANDARD 17)
|
||||||
|
|
||||||
find_package(CURL REQUIRED)
|
find_package(CURL REQUIRED)
|
||||||
include_directories(${CURL_INCLUDE_DIR})
|
include_directories(${CURL_INCLUDE_DIR} inc)
|
||||||
|
|
||||||
add_library(api
|
add_library(api
|
||||||
src/api/API.h
|
|
||||||
src/api/API.cpp
|
src/api/API.cpp
|
||||||
|
|
||||||
src/api/Hashmap.h
|
|
||||||
|
|
||||||
src/api/TelegramAPI.cpp
|
src/api/TelegramAPI.cpp
|
||||||
src/api/TelegramAPI.h
|
|
||||||
|
|
||||||
src/api/DynuAPI.cpp
|
src/api/DynuAPI.cpp
|
||||||
src/api/DynuAPI.h
|
|
||||||
|
|
||||||
src/api/IPAPI.cpp
|
src/api/IPAPI.cpp
|
||||||
src/api/IPAPI.h
|
|
||||||
)
|
)
|
||||||
|
|
||||||
add_library(logger
|
add_library(logger
|
||||||
src/Logger.cpp
|
src/Logger.cpp
|
||||||
src/Logger.h
|
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|
||||||
@ -33,6 +27,9 @@ set(SOURCE
|
|||||||
)
|
)
|
||||||
|
|
||||||
add_executable(iprefresher ${SOURCE})
|
add_executable(iprefresher ${SOURCE})
|
||||||
|
|
||||||
|
# LINK generated LIBS #
|
||||||
target_link_libraries(iprefresher api logger ${CURL_LIBRARIES} )
|
target_link_libraries(iprefresher api logger ${CURL_LIBRARIES} )
|
||||||
|
|
||||||
|
# INSTALL to SYSTEM #
|
||||||
install (TARGETS iprefresher DESTINATION bin)
|
install (TARGETS iprefresher DESTINATION bin)
|
||||||
|
26
inc/Logger.h
Normal file
26
inc/Logger.h
Normal file
@ -0,0 +1,26 @@
|
|||||||
|
//
|
||||||
|
// Created by lukas on 05.05.19.
|
||||||
|
//
|
||||||
|
#pragma once
|
||||||
|
|
||||||
|
class Logger {
|
||||||
|
public:
|
||||||
|
/**
|
||||||
|
* log messages to logfile
|
||||||
|
* @param text message
|
||||||
|
*/
|
||||||
|
void logToLogfile(std::string text);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* safe ip to temp file
|
||||||
|
* @param ip ip address to save
|
||||||
|
*/
|
||||||
|
void safeip(std::string ip);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* read ip from file
|
||||||
|
* @return read ip
|
||||||
|
*/
|
||||||
|
std::string readip();
|
||||||
|
|
||||||
|
};
|
32
inc/api/API.h
Normal file
32
inc/api/API.h
Normal file
@ -0,0 +1,32 @@
|
|||||||
|
//
|
||||||
|
// Created by lukas on 06.04.19.
|
||||||
|
//
|
||||||
|
|
||||||
|
#pragma once
|
||||||
|
|
||||||
|
|
||||||
|
#include <string>
|
||||||
|
#include "Hashmap.h"
|
||||||
|
|
||||||
|
class API {
|
||||||
|
public:
|
||||||
|
/**
|
||||||
|
* Simple API get request
|
||||||
|
* @param myurl api url
|
||||||
|
* @return return string of server
|
||||||
|
*/
|
||||||
|
std::string request(std::string myurl);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* complex request with post/get and header information support
|
||||||
|
* @param myurl base request url
|
||||||
|
* @param post boolean (false=get)
|
||||||
|
* @param map post/get fields
|
||||||
|
* @param headers header fields
|
||||||
|
* @return return string of server
|
||||||
|
*/
|
||||||
|
std::string request(std::string myurl, bool post, Hashmap<std::string, std::string> &map, std::vector<std::string> &headers);
|
||||||
|
|
||||||
|
private:
|
||||||
|
static size_t write_data(void *buffer, size_t size, size_t buffersize, FILE *stream);
|
||||||
|
};
|
@ -2,14 +2,18 @@
|
|||||||
// Created by lukas on 18.06.19.
|
// Created by lukas on 18.06.19.
|
||||||
//
|
//
|
||||||
|
|
||||||
#ifndef IPREFRESHER_DYNUAPI_H
|
#pragma once
|
||||||
#define IPREFRESHER_DYNUAPI_H
|
|
||||||
|
|
||||||
|
|
||||||
#include "API.h"
|
#include "API.h"
|
||||||
|
|
||||||
class DynuAPI : API{
|
class DynuAPI : API{
|
||||||
public:
|
public:
|
||||||
|
/**
|
||||||
|
* refresh the ip of domain on Dynu server
|
||||||
|
* @param ip new ip
|
||||||
|
* @return request status
|
||||||
|
*/
|
||||||
int refreshIp(std::string ip);
|
int refreshIp(std::string ip);
|
||||||
private:
|
private:
|
||||||
const std::string dynuapikey = "88vNpMfDhMM2YYDNfWR1DNYfRX9W6fYg";
|
const std::string dynuapikey = "88vNpMfDhMM2YYDNfWR1DNYfRX9W6fYg";
|
||||||
@ -17,6 +21,3 @@ private:
|
|||||||
const std::string domainid = "8506047"; //id of the dynu domain
|
const std::string domainid = "8506047"; //id of the dynu domain
|
||||||
const std::string domainname = "luki.dynu.net";
|
const std::string domainname = "luki.dynu.net";
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
#endif //IPREFRESHER_DYNUAPI_H
|
|
@ -2,8 +2,7 @@
|
|||||||
// Created by lukas on 07.04.19.
|
// Created by lukas on 07.04.19.
|
||||||
//
|
//
|
||||||
|
|
||||||
#ifndef QT5PROJECT_HASHMAP_H
|
#pragma once
|
||||||
#define QT5PROJECT_HASHMAP_H
|
|
||||||
|
|
||||||
|
|
||||||
#include <iostream>
|
#include <iostream>
|
||||||
@ -12,12 +11,31 @@
|
|||||||
template<class keytype, class valuetype>
|
template<class keytype, class valuetype>
|
||||||
class Hashmap {
|
class Hashmap {
|
||||||
public:
|
public:
|
||||||
|
/**
|
||||||
|
* add key-value pair to hashmap
|
||||||
|
* @param key keyvalue
|
||||||
|
* @param value valuevalue
|
||||||
|
*/
|
||||||
void add(keytype key, keytype value);
|
void add(keytype key, keytype value);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* get key of specific position
|
||||||
|
* @param position int position
|
||||||
|
* @return responding key object
|
||||||
|
*/
|
||||||
keytype getKey(int position);
|
keytype getKey(int position);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* get value of specific position
|
||||||
|
* @param position int position
|
||||||
|
* @return responding value object
|
||||||
|
*/
|
||||||
valuetype getValue(int position);
|
valuetype getValue(int position);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* get size of Hashmap
|
||||||
|
* @return size of Hashmap
|
||||||
|
*/
|
||||||
int size();
|
int size();
|
||||||
|
|
||||||
private:
|
private:
|
||||||
@ -45,6 +63,3 @@ template<class keytype, class valuetype>
|
|||||||
int Hashmap<keytype, valuetype>::size() {
|
int Hashmap<keytype, valuetype>::size() {
|
||||||
return (int) (keys.size());
|
return (int) (keys.size());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
#endif //QT5PROJECT_HASHMAP_H
|
|
@ -2,17 +2,16 @@
|
|||||||
// Created by lukas on 18.06.19.
|
// Created by lukas on 18.06.19.
|
||||||
//
|
//
|
||||||
|
|
||||||
#ifndef IPREFRESHER_IPAPI_H
|
#pragma once
|
||||||
#define IPREFRESHER_IPAPI_H
|
|
||||||
|
|
||||||
|
|
||||||
#include <string>
|
#include <string>
|
||||||
#include "API.h"
|
#include "API.h"
|
||||||
|
|
||||||
class IPAPI : API{
|
class IPAPI : API{
|
||||||
public:
|
public:
|
||||||
|
/**
|
||||||
|
* get global ip of current internet connection
|
||||||
|
* @return global ip
|
||||||
|
*/
|
||||||
std::string getGlobalIp();
|
std::string getGlobalIp();
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
#endif //IPREFRESHER_IPAPI_H
|
|
@ -2,8 +2,7 @@
|
|||||||
// Created by lukas on 08.05.19.
|
// Created by lukas on 08.05.19.
|
||||||
//
|
//
|
||||||
|
|
||||||
#ifndef IPREFRESHER_TELEGRAMAPI_H
|
#pragma once
|
||||||
#define IPREFRESHER_TELEGRAMAPI_H
|
|
||||||
|
|
||||||
|
|
||||||
#include <string>
|
#include <string>
|
||||||
@ -11,12 +10,13 @@
|
|||||||
|
|
||||||
class TelegramAPI : API {
|
class TelegramAPI : API {
|
||||||
public:
|
public:
|
||||||
|
/**
|
||||||
|
* send telegram Message to predefined destination
|
||||||
|
* @param text message
|
||||||
|
*/
|
||||||
void sendMessage(std::string text);
|
void sendMessage(std::string text);
|
||||||
|
|
||||||
private:
|
private:
|
||||||
const std::string apikey = "717213769:AAHan1nSXhUsxLJAN1Dv8Oc0z8wqwDdYPn4";
|
const std::string apikey = "717213769:AAHan1nSXhUsxLJAN1Dv8Oc0z8wqwDdYPn4";
|
||||||
const std::string chatid = "618154204";
|
const std::string chatid = "618154204";
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
#endif //IPREFRESHER_TELEGRAMAPI_H
|
|
20
src/Logger.h
20
src/Logger.h
@ -1,20 +0,0 @@
|
|||||||
//
|
|
||||||
// Created by lukas on 05.05.19.
|
|
||||||
//
|
|
||||||
|
|
||||||
#ifndef IPREFRESHER_LOGGER_H
|
|
||||||
#define IPREFRESHER_LOGGER_H
|
|
||||||
|
|
||||||
|
|
||||||
class Logger {
|
|
||||||
public:
|
|
||||||
void logToLogfile(std::string text);
|
|
||||||
|
|
||||||
void safeip(std::string ip);
|
|
||||||
|
|
||||||
std::string readip();
|
|
||||||
|
|
||||||
};
|
|
||||||
|
|
||||||
|
|
||||||
#endif //IPREFRESHER_LOGGER_H
|
|
@ -2,8 +2,8 @@
|
|||||||
// Created by lukas on 06.04.19.
|
// Created by lukas on 06.04.19.
|
||||||
//
|
//
|
||||||
|
|
||||||
#include "API.h"
|
#include "api/API.h"
|
||||||
#include "Hashmap.h"
|
#include "api/Hashmap.h"
|
||||||
|
|
||||||
#include <string>
|
#include <string>
|
||||||
#include <iostream>
|
#include <iostream>
|
||||||
|
@ -1,23 +0,0 @@
|
|||||||
//
|
|
||||||
// Created by lukas on 06.04.19.
|
|
||||||
//
|
|
||||||
|
|
||||||
#ifndef IPREFRESHER_API_H
|
|
||||||
#define IPREFRESHER_API_H
|
|
||||||
|
|
||||||
|
|
||||||
#include <string>
|
|
||||||
#include "Hashmap.h"
|
|
||||||
|
|
||||||
class API {
|
|
||||||
public:
|
|
||||||
std::string request(std::string myurl);
|
|
||||||
|
|
||||||
std::string request(std::string myurl, bool post, Hashmap<std::string, std::string> &map, std::vector<std::string> &headers);
|
|
||||||
|
|
||||||
private:
|
|
||||||
static size_t write_data(void *buffer, size_t size, size_t buffersize, FILE *stream);
|
|
||||||
};
|
|
||||||
|
|
||||||
|
|
||||||
#endif //IPREFRESHER_API_H
|
|
@ -2,7 +2,7 @@
|
|||||||
// Created by lukas on 18.06.19.
|
// Created by lukas on 18.06.19.
|
||||||
//
|
//
|
||||||
|
|
||||||
#include "DynuAPI.h"
|
#include "api/DynuAPI.h"
|
||||||
|
|
||||||
int DynuAPI::refreshIp(std:: string ip) {
|
int DynuAPI::refreshIp(std:: string ip) {
|
||||||
|
|
||||||
|
@ -2,7 +2,7 @@
|
|||||||
// Created by lukas on 18.06.19.
|
// Created by lukas on 18.06.19.
|
||||||
//
|
//
|
||||||
|
|
||||||
#include "IPAPI.h"
|
#include "api/IPAPI.h"
|
||||||
|
|
||||||
std::string IPAPI::getGlobalIp() {
|
std::string IPAPI::getGlobalIp() {
|
||||||
return request("https://api.ipify.org");
|
return request("https://api.ipify.org");
|
||||||
|
@ -2,7 +2,7 @@
|
|||||||
// Created by lukas on 08.05.19.
|
// Created by lukas on 08.05.19.
|
||||||
//
|
//
|
||||||
|
|
||||||
#include "TelegramAPI.h"
|
#include "api/TelegramAPI.h"
|
||||||
|
|
||||||
void TelegramAPI::sendMessage(std::string text) {
|
void TelegramAPI::sendMessage(std::string text) {
|
||||||
Hashmap<std::string, std::string> args;
|
Hashmap<std::string, std::string> args;
|
||||||
|
Loading…
Reference in New Issue
Block a user