diff options
| author | tim <tim@eclectronics.org> | 2017-03-30 00:15:52 +0100 |
|---|---|---|
| committer | tim <tim@eclectronics.org> | 2017-03-30 00:15:52 +0100 |
| commit | d7eefb73403785845c3c6e9d77e09f2f9bdd4ff6 (patch) | |
| tree | 6e95e9d4e8e7102f4f9c7860d4c7bb35fdd4828a /menuApp/src/ofApp.cpp | |
| parent | 7a6739e90ff95dae46b1b7c14e8cb183407154e0 (diff) | |
ofxInstagram updates for addon lib
Diffstat (limited to 'menuApp/src/ofApp.cpp')
| -rw-r--r-- | menuApp/src/ofApp.cpp | 123 |
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(); + } } |
