Display feed info from cli options
This commit is contained in:
parent
b0783ea304
commit
95a4d9cc81
11
src/main.cpp
11
src/main.cpp
@ -9,6 +9,7 @@
|
|||||||
#include <getopt.h>
|
#include <getopt.h>
|
||||||
|
|
||||||
#include "config.hpp"
|
#include "config.hpp"
|
||||||
|
#include "rss_out.hpp"
|
||||||
#include "options.hpp"
|
#include "options.hpp"
|
||||||
#include "rss.hpp"
|
#include "rss.hpp"
|
||||||
|
|
||||||
@ -31,13 +32,11 @@ int main(int argc, char** argv) {
|
|||||||
exit(-1);
|
exit(-1);
|
||||||
|
|
||||||
//display requested attributes
|
//display requested attributes
|
||||||
|
std::string output = rss_utils::rss_to_list(feed, opts);
|
||||||
|
|
||||||
|
std::cout << output << std::endl;
|
||||||
|
|
||||||
|
|
||||||
|
delete opts;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
@ -4,12 +4,14 @@
|
|||||||
// options parsing
|
// options parsing
|
||||||
//
|
//
|
||||||
|
|
||||||
|
#pragma once
|
||||||
|
|
||||||
#include <string>
|
#include <string>
|
||||||
#include <iostream>
|
#include <iostream>
|
||||||
#include <getopt.h>
|
#include <getopt.h>
|
||||||
|
|
||||||
//cli options
|
//cli options
|
||||||
constexpr char* optarg_string = "u:tldemcpqgowbh";
|
constexpr char optarg_string[] = "u:tldemcpqgowbh";
|
||||||
|
|
||||||
static struct option long_options[] =
|
static struct option long_options[] =
|
||||||
{
|
{
|
||||||
|
51
src/rss.cpp
51
src/rss.cpp
@ -170,6 +170,57 @@ std::string rss::getPubDate() const {
|
|||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
std::string rss::getManagingEditor() const {
|
||||||
|
if(!ok)
|
||||||
|
return "";
|
||||||
|
|
||||||
|
rapidxml::xml_node<> *tmp = item_node->first_node("managingEditor");
|
||||||
|
if(tmp == 0)
|
||||||
|
return "";
|
||||||
|
return tmp->value();
|
||||||
|
}
|
||||||
|
|
||||||
|
std::string rss::getGenerator() const {
|
||||||
|
if(!ok)
|
||||||
|
return "";
|
||||||
|
|
||||||
|
rapidxml::xml_node<> *tmp = item_node->first_node("generator");
|
||||||
|
if(tmp == 0)
|
||||||
|
return "";
|
||||||
|
return tmp->value();
|
||||||
|
}
|
||||||
|
|
||||||
|
std::string rss::getDocs() const {
|
||||||
|
if(!ok)
|
||||||
|
return "";
|
||||||
|
|
||||||
|
rapidxml::xml_node<> *tmp = item_node->first_node("docs");
|
||||||
|
if(tmp == 0)
|
||||||
|
return "";
|
||||||
|
return tmp->value();
|
||||||
|
}
|
||||||
|
|
||||||
|
std::string rss::getTTL() const {
|
||||||
|
if(!ok)
|
||||||
|
return "";
|
||||||
|
|
||||||
|
rapidxml::xml_node<> *tmp = item_node->first_node("ttl");
|
||||||
|
if(tmp == 0)
|
||||||
|
return "";
|
||||||
|
return tmp->value();
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
std::string rss::getLastBuildDate() const {
|
||||||
|
if(!ok)
|
||||||
|
return "";
|
||||||
|
|
||||||
|
rapidxml::xml_node<> *tmp = item_node->first_node("lastBuildDate");
|
||||||
|
if(tmp == 0)
|
||||||
|
return "";
|
||||||
|
return tmp->value();
|
||||||
|
}
|
||||||
|
|
||||||
std::vector<std::map<std::string, std::string>> rss::getItems() const {
|
std::vector<std::map<std::string, std::string>> rss::getItems() const {
|
||||||
std::vector<std::map<std::string, std::string>> items;
|
std::vector<std::map<std::string, std::string>> items;
|
||||||
|
|
||||||
|
57
src/rss_out.cpp
Normal file
57
src/rss_out.cpp
Normal file
@ -0,0 +1,57 @@
|
|||||||
|
///////////////////////////////////////////////////////////////////////////////
|
||||||
|
// Tyler Perkins
|
||||||
|
// 7-23-21
|
||||||
|
// rss output functions implementation
|
||||||
|
//
|
||||||
|
|
||||||
|
#include "rss_out.hpp"
|
||||||
|
|
||||||
|
using namespace rss_utils;
|
||||||
|
|
||||||
|
std::string rss_utils::rss_to_list(const rss& rss_obj, const option_flags* flags){
|
||||||
|
std::string ret;
|
||||||
|
|
||||||
|
if(flags->title){
|
||||||
|
ret += rss_obj.getTitle() + "\n";
|
||||||
|
}
|
||||||
|
if(flags->link){
|
||||||
|
ret += rss_obj.getLink() + "\n";
|
||||||
|
}
|
||||||
|
if(flags->description){
|
||||||
|
ret += rss_obj.getDescription() + "\n";
|
||||||
|
}
|
||||||
|
if(flags->language){
|
||||||
|
ret += rss_obj.getLanguage() + "\n";
|
||||||
|
}
|
||||||
|
if(flags->webmaster){
|
||||||
|
ret += rss_obj.getWebMaster() + "\n";
|
||||||
|
}
|
||||||
|
if(flags->copyright){
|
||||||
|
ret += rss_obj.getCopyright() + "\n";
|
||||||
|
}
|
||||||
|
if(flags->pubdate){
|
||||||
|
ret += rss_obj.getPubDate() + "\n";
|
||||||
|
}
|
||||||
|
if(flags->managingeditor){
|
||||||
|
ret += rss_obj.getManagingEditor() + "\n";
|
||||||
|
}
|
||||||
|
if(flags->generator){
|
||||||
|
ret += rss_obj.getGenerator() + "\n";
|
||||||
|
}
|
||||||
|
if(flags->docs){
|
||||||
|
ret += rss_obj.getDocs() + "\n";
|
||||||
|
}
|
||||||
|
if(flags->ttl){
|
||||||
|
ret += rss_obj.getTTL() + "\n";
|
||||||
|
}
|
||||||
|
if(flags->builddate){
|
||||||
|
ret += rss_obj.getLastBuildDate() + "\n";
|
||||||
|
}
|
||||||
|
|
||||||
|
if(ret.length() > 0)
|
||||||
|
ret.pop_back();
|
||||||
|
else if (ret.length() == 0)
|
||||||
|
ret = "<No arguments given>";
|
||||||
|
|
||||||
|
return ret;
|
||||||
|
}
|
19
src/rss_out.hpp
Normal file
19
src/rss_out.hpp
Normal file
@ -0,0 +1,19 @@
|
|||||||
|
///////////////////////////////////////////////////////////////////////////////
|
||||||
|
// Tyler Perkins
|
||||||
|
// 7-23-21
|
||||||
|
// rss output functions
|
||||||
|
//
|
||||||
|
|
||||||
|
#pragma once
|
||||||
|
|
||||||
|
#include <string>
|
||||||
|
|
||||||
|
#include "options.hpp"
|
||||||
|
#include "rss.hpp"
|
||||||
|
|
||||||
|
namespace rss_utils {
|
||||||
|
std::string rss_to_list(const rss&, const option_flags*);
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
}
|
Loading…
Reference in New Issue
Block a user