summary refs log tree commit diff stats
diff options
context:
space:
mode:
authorKelly Rauchenberger <fefferburbia@gmail.com>2016-12-13 19:24:06 -0500
committerKelly Rauchenberger <fefferburbia@gmail.com>2016-12-13 19:24:06 -0500
commitd5c32fc3f885a7b8f719c9f27dbba36e287222f0 (patch)
treee95be7b21d6daab0bad47fc0ff6127f21288c3ff
parent5413c1c0dc40b24fd0932e3b8f7fdfa3a596859f (diff)
downloadinfinite-d5c32fc3f885a7b8f719c9f27dbba36e287222f0.tar.gz
infinite-d5c32fc3f885a7b8f719c9f27dbba36e287222f0.tar.bz2
infinite-d5c32fc3f885a7b8f719c9f27dbba36e287222f0.zip
Bot now takes path to config file as argument
That config file now also has to contain the paths to the verbly datafile, the forms file, the fonts directory, and the color palettes file.
-rw-r--r--fractal.cpp6
-rw-r--r--fractal.h2
-rw-r--r--infinite.cpp27
3 files changed, 23 insertions, 12 deletions
diff --git a/fractal.cpp b/fractal.cpp index 145886a..a911177 100644 --- a/fractal.cpp +++ b/fractal.cpp
@@ -508,7 +508,7 @@ int Fractal::load(const char* filename, Fractal& fractal)
508 return 0; 508 return 0;
509} 509}
510 510
511Fractal Fractal::random() 511Fractal Fractal::random(std::string colorsfile)
512{ 512{
513 Fractal fractal; 513 Fractal fractal;
514 514
@@ -577,10 +577,10 @@ Fractal Fractal::random()
577 } 577 }
578 578
579 std::vector<std::string> colors; 579 std::vector<std::string> colors;
580 std::ifstream colorfile("colors.txt"); 580 std::ifstream colorfile(colorsfile);
581 if (!colorfile.is_open()) 581 if (!colorfile.is_open())
582 { 582 {
583 std::cout << "Could not find colors.txt" << std::endl; 583 std::cout << "Could not find colors file" << std::endl;
584 exit(-1); 584 exit(-1);
585 } 585 }
586 586
diff --git a/fractal.h b/fractal.h index af098f4..cfd39db 100644 --- a/fractal.h +++ b/fractal.h
@@ -50,7 +50,7 @@ class Fractal {
50 Color get_color(double c) const; 50 Color get_color(double c) const;
51 51
52 static int load(const char* filename, Fractal& fractal); 52 static int load(const char* filename, Fractal& fractal);
53 static Fractal random(); 53 static Fractal random(std::string colorsfile);
54 54
55 double filterlevel = 0.5; 55 double filterlevel = 0.5;
56 double gamma = 2.2; 56 double gamma = 2.2;
diff --git a/infinite.cpp b/infinite.cpp index a491302..1409ba2 100644 --- a/infinite.cpp +++ b/infinite.cpp
@@ -439,7 +439,15 @@ int main(int argc, char** argv)
439 439
440 Magick::InitializeMagick(nullptr); 440 Magick::InitializeMagick(nullptr);
441 441
442 YAML::Node config = YAML::LoadFile("config.yml"); 442 if (argc != 2)
443 {
444 std::cout << "usage: infinite [configfile]" << std::endl;
445 return -1;
446 }
447
448 std::string configfile(argv[1]);
449 YAML::Node config = YAML::LoadFile(configfile);
450
443 twitter::auth auth; 451 twitter::auth auth;
444 auth.setConsumerKey(config["consumer_key"].as<std::string>()); 452 auth.setConsumerKey(config["consumer_key"].as<std::string>());
445 auth.setConsumerSecret(config["consumer_secret"].as<std::string>()); 453 auth.setConsumerSecret(config["consumer_secret"].as<std::string>());
@@ -451,10 +459,10 @@ int main(int argc, char** argv)
451 // Parse forms file 459 // Parse forms file
452 std::map<std::string, std::vector<std::string>> groups; 460 std::map<std::string, std::vector<std::string>> groups;
453 { 461 {
454 std::ifstream datafile("forms.txt"); 462 std::ifstream datafile(config["forms_file"].as<std::string>());
455 if (!datafile.is_open()) 463 if (!datafile.is_open())
456 { 464 {
457 std::cout << "Could not find forms.txt" << std::endl; 465 std::cout << "Could not find forms file" << std::endl;
458 return 1; 466 return 1;
459 } 467 }
460 468
@@ -484,11 +492,12 @@ int main(int argc, char** argv)
484 } 492 }
485 493
486 // Read in fonts 494 // Read in fonts
495 std::string fontsdirname = config["fonts"].as<std::string>();
487 std::vector<std::string> fonts; 496 std::vector<std::string> fonts;
488 { 497 {
489 DIR* fontdir; 498 DIR* fontdir;
490 struct dirent* ent; 499 struct dirent* ent;
491 if ((fontdir = opendir("fonts")) == nullptr) 500 if ((fontdir = opendir(fontsdirname.c_str())) == nullptr)
492 { 501 {
493 std::cout << "Couldn't find fonts." << std::endl; 502 std::cout << "Couldn't find fonts." << std::endl;
494 return -1; 503 return -1;
@@ -506,7 +515,9 @@ int main(int argc, char** argv)
506 closedir(fontdir); 515 closedir(fontdir);
507 } 516 }
508 517
509 verbly::data database {"data.sqlite3"}; 518 std::string colorsfile(config["colors"].as<std::string>());
519
520 verbly::data database {config["verbly_datafile"].as<std::string>()};
510 521
511 for (;;) 522 for (;;)
512 { 523 {
@@ -614,7 +625,7 @@ int main(int argc, char** argv)
614 { 625 {
615 std::cout << "Generating flame fractal..." << std::endl; 626 std::cout << "Generating flame fractal..." << std::endl;
616 627
617 Fractal fractal = Fractal::random(); 628 Fractal fractal = Fractal::random(colorsfile);
618 std::vector<Color> irradiance(target_w*target_h*sample_rate*sample_rate, Color(0.0, 0.0, 0.0, 0.0)); 629 std::vector<Color> irradiance(target_w*target_h*sample_rate*sample_rate, Color(0.0, 0.0, 0.0, 0.0));
619 630
620 double x = (double)rand()/(double)RAND_MAX*2.0-1.0; 631 double x = (double)rand()/(double)RAND_MAX*2.0-1.0;
@@ -730,7 +741,7 @@ int main(int argc, char** argv)
730 // Put text on top of the fractal 741 // Put text on top of the fractal
731 std::string subaction = action; 742 std::string subaction = action;
732 std::string font = fonts[rand() % fonts.size()]; 743 std::string font = fonts[rand() % fonts.size()];
733 if (font == "Le_Super_Type_SemiBold.ttf") 744 if (font.find("Le_Super_Type_SemiBold.ttf") != std::string::npos)
734 { 745 {
735 std::transform(std::begin(subaction), std::end(subaction), std::begin(subaction), [] (char ch) { 746 std::transform(std::begin(subaction), std::end(subaction), std::begin(subaction), [] (char ch) {
736 return std::toupper(ch); 747 return std::toupper(ch);
@@ -741,7 +752,7 @@ int main(int argc, char** argv)
741 textimage.type(Magick::TrueColorMatteType); 752 textimage.type(Magick::TrueColorMatteType);
742 textimage.fillColor(Magick::Color("white")); 753 textimage.fillColor(Magick::Color("white"));
743 textimage.fontPointsize(72.0); 754 textimage.fontPointsize(72.0);
744 textimage.font("fonts/" + font); 755 textimage.font(fontsdirname + "/" + font);
745 756
746 auto words = verbly::split<std::list<std::string>>(subaction, " "); 757 auto words = verbly::split<std::list<std::string>>(subaction, " ");
747 std::string towrite = ""; 758 std::string towrite = "";