diff options
| author | Tim Redfern <tim@eclectronics.org> | 2014-03-10 12:40:45 +0000 |
|---|---|---|
| committer | Tim Redfern <tim@eclectronics.org> | 2014-03-10 12:40:45 +0000 |
| commit | 2a6b5328dec0ef2200bdbb94b16e8531c7c071b2 (patch) | |
| tree | c77bf8ceb17748ad2fd89f5274b73f42c54329f9 /json-instagram | |
| parent | 9301d02887e2d75457c3ee885418f44846ca3143 (diff) | |
getting images from instagram
Diffstat (limited to 'json-instagram')
| -rw-r--r-- | json-instagram/Makefile | 13 | ||||
| -rw-r--r-- | json-instagram/addons.make | 1 | ||||
| -rw-r--r-- | json-instagram/config.make | 141 | ||||
| -rw-r--r-- | json-instagram/src/exampleApp.cpp | 55 | ||||
| -rw-r--r-- | json-instagram/src/exampleApp.h | 15 | ||||
| -rw-r--r-- | json-instagram/src/main.cpp | 6 |
6 files changed, 231 insertions, 0 deletions
diff --git a/json-instagram/Makefile b/json-instagram/Makefile new file mode 100644 index 0000000..cda22b7 --- /dev/null +++ b/json-instagram/Makefile @@ -0,0 +1,13 @@ +# Attempt to load a config.make file. +# If none is found, project defaults in config.project.make will be used. +ifneq ($(wildcard config.make),) + include config.make +endif + +# make sure the the OF_ROOT location is defined +ifndef OF_ROOT + OF_ROOT=../../openFrameworks +endif + +# call the project makefile! +include $(OF_ROOT)/libs/openFrameworksCompiled/project/makefileCommon/compile.project.mk diff --git a/json-instagram/addons.make b/json-instagram/addons.make new file mode 100644 index 0000000..ab5217b --- /dev/null +++ b/json-instagram/addons.make @@ -0,0 +1 @@ +ofxJSON diff --git a/json-instagram/config.make b/json-instagram/config.make new file mode 100644 index 0000000..93c489d --- /dev/null +++ b/json-instagram/config.make @@ -0,0 +1,141 @@ +################################################################################ +# CONFIGURE PROJECT MAKEFILE (optional) +# This file is where we make project specific configurations. +################################################################################ + +################################################################################ +# OF ROOT +# The location of your root openFrameworks installation +# (default) PATH_OF_ROOT = ../../.. +################################################################################ +# PATH_OF_ROOT = ../../.. + +################################################################################ +# PROJECT ROOT +# The location of the project - a starting place for searching for files +# (default) PROJECT_ROOT = . (this directory) +# +################################################################################ +# PROJECT_ROOT = . + +################################################################################ +# PROJECT SPECIFIC CHECKS +# This is a project defined section to create internal makefile flags to +# conditionally enable or disable the addition of various features within +# this makefile. For instance, if you want to make changes based on whether +# GTK is installed, one might test that here and create a variable to check. +################################################################################ +# None + +################################################################################ +# PROJECT EXTERNAL SOURCE PATHS +# These are fully qualified paths that are not within the PROJECT_ROOT folder. +# Like source folders in the PROJECT_ROOT, these paths are subject to +# exlclusion via the PROJECT_EXLCUSIONS list. +# +# (default) PROJECT_EXTERNAL_SOURCE_PATHS = (blank) +# +# Note: Leave a leading space when adding list items with the += operator +################################################################################ +# PROJECT_EXTERNAL_SOURCE_PATHS = + +################################################################################ +# PROJECT EXCLUSIONS +# These makefiles assume that all folders in your current project directory +# and any listed in the PROJECT_EXTERNAL_SOURCH_PATHS are are valid locations +# to look for source code. The any folders or files that match any of the +# items in the PROJECT_EXCLUSIONS list below will be ignored. +# +# Each item in the PROJECT_EXCLUSIONS list will be treated as a complete +# string unless teh user adds a wildcard (%) operator to match subdirectories. +# GNU make only allows one wildcard for matching. The second wildcard (%) is +# treated literally. +# +# (default) PROJECT_EXCLUSIONS = (blank) +# +# Will automatically exclude the following: +# +# $(PROJECT_ROOT)/bin% +# $(PROJECT_ROOT)/obj% +# $(PROJECT_ROOT)/%.xcodeproj +# +# Note: Leave a leading space when adding list items with the += operator +################################################################################ +# PROJECT_EXCLUSIONS = + +################################################################################ +# PROJECT LINKER FLAGS +# These flags will be sent to the linker when compiling the executable. +# +# (default) PROJECT_LDFLAGS = -Wl,-rpath=./libs +# +# Note: Leave a leading space when adding list items with the += operator +# +# Currently, shared libraries that are needed are copied to the +# $(PROJECT_ROOT)/bin/libs directory. The following LDFLAGS tell the linker to +# add a runtime path to search for those shared libraries, since they aren't +# incorporated directly into the final executable application binary. +################################################################################ +# PROJECT_LDFLAGS=-Wl,-rpath=./libs + +################################################################################ +# PROJECT DEFINES +# Create a space-delimited list of DEFINES. The list will be converted into +# CFLAGS with the "-D" flag later in the makefile. +# +# (default) PROJECT_DEFINES = (blank) +# +# Note: Leave a leading space when adding list items with the += operator +################################################################################ +# PROJECT_DEFINES = + +################################################################################ +# PROJECT CFLAGS +# This is a list of fully qualified CFLAGS required when compiling for this +# project. These CFLAGS will be used IN ADDITION TO the PLATFORM_CFLAGS +# defined in your platform specific core configuration files. These flags are +# presented to the compiler BEFORE the PROJECT_OPTIMIZATION_CFLAGS below. +# +# (default) PROJECT_CFLAGS = (blank) +# +# Note: Before adding PROJECT_CFLAGS, note that the PLATFORM_CFLAGS defined in +# your platform specific configuration file will be applied by default and +# further flags here may not be needed. +# +# Note: Leave a leading space when adding list items with the += operator +################################################################################ +# PROJECT_CFLAGS = + +################################################################################ +# PROJECT OPTIMIZATION CFLAGS +# These are lists of CFLAGS that are target-specific. While any flags could +# be conditionally added, they are usually limited to optimization flags. +# These flags are added BEFORE the PROJECT_CFLAGS. +# +# PROJECT_OPTIMIZATION_CFLAGS_RELEASE flags are only applied to RELEASE targets. +# +# (default) PROJECT_OPTIMIZATION_CFLAGS_RELEASE = (blank) +# +# PROJECT_OPTIMIZATION_CFLAGS_DEBUG flags are only applied to DEBUG targets. +# +# (default) PROJECT_OPTIMIZATION_CFLAGS_DEBUG = (blank) +# +# Note: Before adding PROJECT_OPTIMIZATION_CFLAGS, please note that the +# PLATFORM_OPTIMIZATION_CFLAGS defined in your platform specific configuration +# file will be applied by default and further optimization flags here may not +# be needed. +# +# Note: Leave a leading space when adding list items with the += operator +################################################################################ +# PROJECT_OPTIMIZATION_CFLAGS_RELEASE = +# PROJECT_OPTIMIZATION_CFLAGS_DEBUG = + +################################################################################ +# PROJECT COMPILERS +# Custom compilers can be set for CC and CXX +# (default) PROJECT_CXX = (blank) +# (default) PROJECT_CC = (blank) +# Note: Leave a leading space when adding list items with the += operator +################################################################################ +# PROJECT_CXX = +# PROJECT_CC = diff --git a/json-instagram/src/exampleApp.cpp b/json-instagram/src/exampleApp.cpp new file mode 100644 index 0000000..0559dce --- /dev/null +++ b/json-instagram/src/exampleApp.cpp @@ -0,0 +1,55 @@ +#include "exampleApp.h" + +/* +so far so good, NOW + +threading + +parse response and identify new pictures +save pictures & metadata - rather than reloading each time? +local images format +do we need any metadata? I guess not other than to know the tag id +could save with the tag id as the name of file, simpler + +how exactly do we parse or mipmap the images +do we worry about memory - I guess not + +*/ + +//------------------------------------------------------------------------------ +void exampleApp::setup() +{ + ofSetFrameRate(24); + + std::string url = "https://api.instagram.com/v1/tags/tycleeson/media/recent?client_id=c1d74d701fdf4ddd9f8d30ee9e8f944b"; + + if (!response.open(url)) { + cout << "Failed to parse JSON\n" << endl; + } + //else cout<<response.getRawString()<<endl; + + + int numImages = MIN(5,response["data"].size()); + for(int i=0; i< numImages; i++) { + std::string url = response["data"][i]["images"]["standard_resolution"]["url"].asString(); + std::string id = response["data"][i]["caption"]["id"].asString(); + cout<<"fetching "<<id<<":"<<url<<endl; + + + ofImage img; + img.loadImage(url); + images.push_back( img ); + } + + +} + +//------------------------------------------------------------------------------ +void exampleApp::draw() +{ + ofBackground(0); + + for(int i=0; i<images.size(); i++) { + images[i].draw(i*30, i*30); + } +} diff --git a/json-instagram/src/exampleApp.h b/json-instagram/src/exampleApp.h new file mode 100644 index 0000000..1dcb032 --- /dev/null +++ b/json-instagram/src/exampleApp.h @@ -0,0 +1,15 @@ +#pragma once + + +#include "ofMain.h" +#include "ofxJSONElement.h" + + +class exampleApp : public ofBaseApp { +public: + void setup(); + void draw(); + + ofxJSONElement response; + std::vector<ofImage> images; +}; diff --git a/json-instagram/src/main.cpp b/json-instagram/src/main.cpp new file mode 100644 index 0000000..1c07795 --- /dev/null +++ b/json-instagram/src/main.cpp @@ -0,0 +1,6 @@ +#include "exampleApp.h" + +int main() { + ofSetupOpenGL(800,700,OF_WINDOW); + ofRunApp(new exampleApp()); +} |
