summaryrefslogtreecommitdiff
path: root/json-instagram
diff options
context:
space:
mode:
Diffstat (limited to 'json-instagram')
-rw-r--r--json-instagram/Makefile13
-rw-r--r--json-instagram/addons.make1
-rw-r--r--json-instagram/config.make141
-rw-r--r--json-instagram/src/exampleApp.cpp55
-rw-r--r--json-instagram/src/exampleApp.h15
-rw-r--r--json-instagram/src/main.cpp6
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());
+}