From 8dd6225e9e0bc6e2ae204b434369259a845a7979 Mon Sep 17 00:00:00 2001 From: Tim Redfern Date: Mon, 3 Mar 2014 13:51:51 +0000 Subject: looking at OAuth --- example-twitter/src/main.cpp | 33 ++++++++++ example-twitter/src/ofApp.cpp | 90 +++++++++++++++++++++++++++ example-twitter/src/ofApp.h | 42 +++++++++++++ example-twitter/src/ofxExampleTwitterClient.h | 58 +++++++++++++++++ offsetProject/src/main.cpp | 2 +- offsetProject/src/ofApp.cpp | 71 +++++++++++++++------ offsetProject/src/ofApp.h | 9 +++ 7 files changed, 286 insertions(+), 19 deletions(-) create mode 100644 example-twitter/src/main.cpp create mode 100644 example-twitter/src/ofApp.cpp create mode 100644 example-twitter/src/ofApp.h create mode 100644 example-twitter/src/ofxExampleTwitterClient.h diff --git a/example-twitter/src/main.cpp b/example-twitter/src/main.cpp new file mode 100644 index 0000000..88fe943 --- /dev/null +++ b/example-twitter/src/main.cpp @@ -0,0 +1,33 @@ +// ============================================================================= +// +// Copyright (c) 2010-2013 Christopher Baker +// +// Permission is hereby granted, free of charge, to any person obtaining a copy +// of this software and associated documentation files (the "Software"), to deal +// in the Software without restriction, including without limitation the rights +// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +// copies of the Software, and to permit persons to whom the Software is +// furnished to do so, subject to the following conditions: +// +// The above copyright notice and this permission notice shall be included in +// all copies or substantial portions of the Software. +// +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +// THE SOFTWARE. +// +// ============================================================================= + + +#include "ofApp.h" + + +int main() +{ + ofSetupOpenGL(100,100,OF_WINDOW); + ofRunApp(new ofApp()); +} diff --git a/example-twitter/src/ofApp.cpp b/example-twitter/src/ofApp.cpp new file mode 100644 index 0000000..1b71796 --- /dev/null +++ b/example-twitter/src/ofApp.cpp @@ -0,0 +1,90 @@ +// ============================================================================= +// +// Copyright (c) 2010-2013 Christopher Baker +// +// Permission is hereby granted, free of charge, to any person obtaining a copy +// of this software and associated documentation files (the "Software"), to deal +// in the Software without restriction, including without limitation the rights +// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +// copies of the Software, and to permit persons to whom the Software is +// furnished to do so, subject to the following conditions: +// +// The above copyright notice and this permission notice shall be included in +// all copies or substantial portions of the Software. +// +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +// THE SOFTWARE. +// +// ============================================================================= + + +#include "ofApp.h" + + +//------------------------------------------------------------------------------ +void ofApp::setup() +{ + ofSetFrameRate(30); + ofSetLogLevel(OF_LOG_VERBOSE); + + // A simplified interface when using the ofxExampleTwitterClient class. + // Twitter-specific configuration details can be taken care of the + // ofxOAuth base class. + //client.setup("CONSUMER_KEY","CONSUMER_SECRET"); + +client.setup("jGt8ptINLee1hvoaVI2wcQ","lIU8KixtRkVo285pdf5quiiHfTzrq8GTGEH88S6fs"); + /* +twitter + +timredfern +API key jGt8ptINLee1hvoaVI2wcQ +secret lIU8KixtRkVo285pdf5quiiHfTzrq8GTGEH88S6fs + + +instagram + +CLIENT INFO +CLIENT ID c1d74d701fdf4ddd9f8d30ee9e8f944b +CLIENT SECRET 763f2fd6cee84cc8bd8f989e3a7ba788 +WEBSITE URL http://eclectronics.org/test +REDIRECT URI http://127.0.0.1 + +*/ + + // Once authenticated, press the spacebar to try a test call. +} + +//------------------------------------------------------------------------------ +void ofApp::draw() +{ + if(client.isAuthorized()) + { + ofBackground(0,255,0); + } + else + { + ofBackground(255,0,0); + } +} + +//------------------------------------------------------------------------------ +void ofApp::keyPressed(int key) +{ + if(key == ' ') + { + if(client.isAuthorized()) + { + std::string s = client.exampleMethod(); + ofLogNotice("testApp::keyPressed") << s; + } + else + { + ofLogWarning("testApp::keyPressed") << "Not authorized yet."; + } + } +} diff --git a/example-twitter/src/ofApp.h b/example-twitter/src/ofApp.h new file mode 100644 index 0000000..8e86fe6 --- /dev/null +++ b/example-twitter/src/ofApp.h @@ -0,0 +1,42 @@ +// ============================================================================= +// +// Copyright (c) 2010-2013 Christopher Baker +// +// Permission is hereby granted, free of charge, to any person obtaining a copy +// of this software and associated documentation files (the "Software"), to deal +// in the Software without restriction, including without limitation the rights +// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +// copies of the Software, and to permit persons to whom the Software is +// furnished to do so, subject to the following conditions: +// +// The above copyright notice and this permission notice shall be included in +// all copies or substantial portions of the Software. +// +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +// THE SOFTWARE. +// +// ============================================================================= + + +#pragma once + + +#include "ofMain.h" +#include "ofxExampleTwitterClient.h" + + +class ofApp: public ofBaseApp +{ +public: + void setup(); + void draw(); + void keyPressed(int key); + + ofxExampleTwitterClient client; + +}; diff --git a/example-twitter/src/ofxExampleTwitterClient.h b/example-twitter/src/ofxExampleTwitterClient.h new file mode 100644 index 0000000..615ef12 --- /dev/null +++ b/example-twitter/src/ofxExampleTwitterClient.h @@ -0,0 +1,58 @@ +// ============================================================================= +// +// Copyright (c) 2010-2013 Christopher Baker +// +// Permission is hereby granted, free of charge, to any person obtaining a copy +// of this software and associated documentation files (the "Software"), to deal +// in the Software without restriction, including without limitation the rights +// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +// copies of the Software, and to permit persons to whom the Software is +// furnished to do so, subject to the following conditions: +// +// The above copyright notice and this permission notice shall be included in +// all copies or substantial portions of the Software. +// +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +// THE SOFTWARE. +// +// ============================================================================= + + +#pragma once + + +#include "ofxOAuth.h" + + +class ofxExampleTwitterClient: public ofxOAuth +{ +public: + ofxExampleTwitterClient() + { + } + + virtual ~ofxExampleTwitterClient() + { + } + + void setup(const std::string& consumerKey, + const std::string& consumerSecret) + { + ofxOAuth::setup("https://api.twitter.com", + consumerKey, + consumerSecret); + } + + // Once setup is called, authenticated calls can be made. + // This method is just an example of whatyour calls might look like. + std::string exampleMethod() + { + return get("/1.1/search/tweets.json?q=#tycleeson"); + } + +}; diff --git a/offsetProject/src/main.cpp b/offsetProject/src/main.cpp index d134fc9..bce5f94 100644 --- a/offsetProject/src/main.cpp +++ b/offsetProject/src/main.cpp @@ -1,6 +1,6 @@ #include "ofApp.h" int main() { - ofSetupOpenGL(1024, 768, OF_WINDOW); + ofSetupOpenGL(1280, 960, OF_WINDOW); ofRunApp(new ofApp()); } diff --git a/offsetProject/src/ofApp.cpp b/offsetProject/src/ofApp.cpp index ab02ea2..1f73212 100644 --- a/offsetProject/src/ofApp.cpp +++ b/offsetProject/src/ofApp.cpp @@ -68,12 +68,13 @@ void ofApp::setup() { cerr<<"level "<level*levels_factor&&level>0){ + int levels_factor=128/levels; + if (level>0&&max(0,depthTiles[level].getPixels()[y*((int)depthTiles[level].getWidth())+x]-128)>level*levels_factor){ for (int i=0;i<2;i++){ for (int j=0;j<2;j++){ checktile(level-1,x*2+i,y*2+j,size/2); @@ -131,30 +132,53 @@ void ofApp::checktile(int level,int x,int y,int size){ //-------------------------------------------------------------- void ofApp::draw() { - ofSetColor(255, 255, 255); + ofBackground(0,0,0); - //recursively draw pixels + ofSetColor(255, 255, 255); int pixelsize=ofGetWidth()/colourTiles[levels-1].getWidth(); - //int yoffset= - for (int i=0;i