summaryrefslogtreecommitdiff
path: root/menuApp/src/ofApp.cpp
diff options
context:
space:
mode:
authortim <tim@eclectronics.org>2017-03-30 00:15:52 +0100
committertim <tim@eclectronics.org>2017-03-30 00:15:52 +0100
commitd7eefb73403785845c3c6e9d77e09f2f9bdd4ff6 (patch)
tree6e95e9d4e8e7102f4f9c7860d4c7bb35fdd4828a /menuApp/src/ofApp.cpp
parent7a6739e90ff95dae46b1b7c14e8cb183407154e0 (diff)
ofxInstagram updates for addon lib
Diffstat (limited to 'menuApp/src/ofApp.cpp')
-rw-r--r--menuApp/src/ofApp.cpp123
1 files changed, 95 insertions, 28 deletions
diff --git a/menuApp/src/ofApp.cpp b/menuApp/src/ofApp.cpp
index 39b85fc..f6f1c2f 100644
--- a/menuApp/src/ofApp.cpp
+++ b/menuApp/src/ofApp.cpp
@@ -11,32 +11,89 @@
*/
void ofApp::loadimages(){
- images.clear();
- images.resize(IMAGE_SLOTS);
+ items.clear();
+ items.resize(IMAGE_SLOTS);
instagram.getUserRecentMedia("self");
//instagram.getUserLikedMedia(12);
+
+ ofLog(OF_LOG_NOTICE) << "instagram self feed -------------------> " << instagram.getImageURL().size() << " items ";
+
+ int slot=0;
+
+ map<std::string,menuItem> newmenu;
if (!instagram.getImageURL().empty())
{
- for ( int i = 0; i < min(IMAGE_SLOTS,(int)instagram.getImageURL().size()); i++)
+ for ( int i = 0; i < instagram.getImageURL().size(); i++)
{
- //if (instagram.getImageURL()!=)
- getImages.loadFromURL(images[i], instagram.getImageURL()[i]);
- ofLog(OF_LOG_NOTICE) << instagram.getImageURL()[i];
- ofLog(OF_LOG_NOTICE) << instagram.getImageCaption()[i];
- //images[i].load("images/"+ofToString(i)+".jpg");
- //
-
- //images[i].resize(480*FACTOR,480*FACTOR);
- }
- }
- /*
+ vector <std::string> tokens = ofSplitString(instagram.getImageCaption()[i]," ",true,true); //,ignoreEmpty=false,trim=false);
+
+ //ofLog(OF_LOG_NOTICE) <<"got "<<tokens.size()<<" tokens";
+
+ std::string caption;
+ std::string price;
+ bool interesting=false;
+
+ std::string tags;
+
+ bool foundTags=false;
+ bool foundPrice=false;
+
+ for(auto it = tokens.begin(); it != tokens.end(); it++){
+ if((*it).at(0)=='#'){
+ if (!foundPrice){
+ price="free";
+ foundPrice=true;
+ }
+ if (*it==menutag){
+ interesting=true;
+ }
+ tags+=*it;
+ tags+=" ";
+ foundTags=true;
+ }
+ else if((*it).at(0)=='€'){
+ price=*it;
+ foundPrice=true;
+ }
+ else{
+ if (!foundTags){
+ caption+=*it;
+ caption+=" ";
+ }
+ }
+ }
+
+ if (interesting){
+
+
+ items[slot]=menuItem(caption,price);
+
+ if (imagepool.find(instagram.getImageID()[i])==imagepool.end()){
+ imagepool[instagram.getImageID()[i]]=ofImage();
+ getImages.loadFromURL(imagepool[instagram.getImageID()[i]], instagram.getImageURL()[i]);
+
+ ofLog(OF_LOG_NOTICE) << menutag << " " << slot << " " << caption << price << instagram.getImageID()[i];
+
+ }
+ else {
+ ofLog(OF_LOG_NOTICE) << "REUSE " << slot << " " << menutag << " " << instagram.getImageID()[i];
+
+ }
+
+ items[slot].image=&imagepool[instagram.getImageID()[i]];
+
+ //getImages.loadFromURL(items[slot].image, instagram.getImageURL()[i]);
+ slot++;
+
+ if (slot==IMAGE_SLOTS) break;
+ }
+ else ofLog(OF_LOG_NOTICE) << "instagram " << i << " " << price << " " << tags;
+
+//this is where we would clean up unused images in the pool
- for ( int i = 0; i < IMAGE_SLOTS; i++)
- {
- images[i].load("images/"+ofToString(i)+".png");
+ }
}
- */
}
//--------------------------------------------------------------
@@ -45,7 +102,7 @@ void ofApp::setup(){
ofTrueTypeFont::setGlobalDpi(150);
- myText.init("American Typewriter Regular.ttf", 14*FACTOR, 'i');
+ myText.init("American Typewriter Regular.ttf", FONTSIZE*FACTOR, 'i');
background.load("images/background1080.png");
overlay.load("images/overlay1080.png");
@@ -53,6 +110,10 @@ void ofApp::setup(){
instagram.setup(hangdaitoken,"self");
instagram.setCertFileLocation(ofToDataPath("ca-bundle.crt",false));
+ menutag=MENUTAG;
+
+ lastPoll=ofGetElapsedTimef();
+
loadimages();
/*
@@ -93,26 +154,29 @@ ofPopMatrix(); //Restore the coordinate system
int col=0;
int row=0;
int cols=2;
- int textcolinset=20;
+ int textcolinset=10;
int textrowinset=50;
//some kind of rendering bug with textsuite means it has to go last or everything is dim
- if (!images.empty()) {
- for (int i = 0; i < images.size(); i++) {
+ if (!items.empty()) {
+ for (int i = 0; i < items.size(); i++) {
//for (int i = 0; i < 5; i++) {
- if (images[i].isAllocated()) {
+ if (items[i].image->isAllocated()) {
//ofLog(OF_LOG_NOTICE,"Image %i is %fx%f",i,images[i].getWidth(),images[i].getHeight());
int imgx=(colinitialoffset+(col*coloffset))*FACTOR;
int imgy=(rowinitialoffset+(row*rowoffset))*FACTOR;
- images[i].draw(imgx,imgy,imgsize*FACTOR,imgsize*FACTOR);
- std::string caption=instagram.getImageCaption()[i];
- myText.setText(caption);
+ items[i].image->draw(imgx,imgy,imgsize*FACTOR,imgsize*FACTOR);
+ myText.setText(items[i].caption);
myText.wrapTextX(imgsize*FACTOR);
myText.setColor(255,255,255,255);
myText.drawCenter(imgx+((imgsize*FACTOR)/2),imgy+((imgsize+textcolinset)*FACTOR),2);
-
+
+ myText.setText(items[i].price);
+ myText.wrapTextX(imgsize*FACTOR);
+ myText.setColor(255,255,255,255);
+ myText.drawCenter(imgx+((imgsize*FACTOR)/2),imgy+((imgsize+textcolinset+(FONTSPACING*2))*FACTOR),2);
}
col++;
if (col==cols){
@@ -126,7 +190,10 @@ ofPopMatrix(); //Restore the coordinate system
overlay.draw(0,0,1080*FACTOR,1920*FACTOR); //ofGetWidth(),ofGetHeight());
ofDisableAlphaBlending();
- float t=ofGetElapsedTimef ();
+ if(ofGetElapsedTimef()-lastPoll>POLL_INTERVAL) {
+ loadimages();
+ lastPoll=ofGetElapsedTimef();
+ }
}