|
@@ -0,0 +1,70 @@
|
|
|
+require 'flickr/login'
|
|
|
+require 'flickraw'
|
|
|
+require 'sinatra'
|
|
|
+require 'sinatra/config_file'
|
|
|
+require 'sinatra/reloader'
|
|
|
+require 'sinatra/sequel'
|
|
|
+
|
|
|
+config_file 'config.yml'
|
|
|
+
|
|
|
+enable :sessions
|
|
|
+
|
|
|
+set :database, 'sqlite://db.sqlite3'
|
|
|
+
|
|
|
+migration 'create users, licenses, and photos tables' do
|
|
|
+ database.create_table :users do
|
|
|
+ column :nsid, String, primary_key: true
|
|
|
+ column :username, String
|
|
|
+ column :fullname, String
|
|
|
+ end
|
|
|
+
|
|
|
+ database.create_table :licenses do
|
|
|
+ column :id, Integer, primary_key: true
|
|
|
+ column :name, String
|
|
|
+ column :url, String
|
|
|
+ end
|
|
|
+
|
|
|
+ database.create_table :photos do
|
|
|
+ column :id, Integer, primary_key: true
|
|
|
+ foreign_key :owner, :users
|
|
|
+ foreign_key :license, :licenses
|
|
|
+ column :json, 'text'
|
|
|
+ column :ignore, 'boolean'
|
|
|
+ end
|
|
|
+end
|
|
|
+
|
|
|
+helpers Flickr::Login::Helpers
|
|
|
+helpers do
|
|
|
+ def flickr
|
|
|
+ unless @flickr
|
|
|
+ @flickr = FlickRaw::Flickr.new(api_key: settings.flickr_api_key, shared_secret: settings.flickr_shared_secret)
|
|
|
+ @flickr.access_token, @flickr.access_secret = flickr_access_token
|
|
|
+ end
|
|
|
+ @flickr
|
|
|
+ end
|
|
|
+end
|
|
|
+
|
|
|
+before do
|
|
|
+ redirect to('/login?perms=write') unless flickr_user
|
|
|
+end
|
|
|
+
|
|
|
+get '/' do
|
|
|
+ erb :index
|
|
|
+end
|
|
|
+
|
|
|
+get '/logout' do
|
|
|
+ flickr_clear
|
|
|
+ redirect to('/')
|
|
|
+end
|
|
|
+
|
|
|
+=begin
|
|
|
+def list(user)
|
|
|
+ all_photos = []
|
|
|
+ page = 0
|
|
|
+ begin
|
|
|
+ photos = flickr.photos.search(user_id: user, extras: 'license', per_page: 500, page: page += 1)
|
|
|
+ all_photos.push(*photos.to_a)
|
|
|
+ end until photos.size < 500
|
|
|
+ all_photos
|
|
|
+end
|
|
|
+=end
|