app.rb 1.4 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970
  1. require 'flickr/login'
  2. require 'flickraw'
  3. require 'sinatra'
  4. require 'sinatra/config_file'
  5. require 'sinatra/reloader'
  6. require 'sinatra/sequel'
  7. config_file 'config.yml'
  8. enable :sessions
  9. set :database, 'sqlite://db.sqlite3'
  10. migration 'create users, licenses, and photos tables' do
  11. database.create_table :users do
  12. column :nsid, String, primary_key: true
  13. column :username, String
  14. column :fullname, String
  15. end
  16. database.create_table :licenses do
  17. column :id, Integer, primary_key: true
  18. column :name, String
  19. column :url, String
  20. end
  21. database.create_table :photos do
  22. column :id, Integer, primary_key: true
  23. foreign_key :owner, :users
  24. foreign_key :license, :licenses
  25. column :json, 'text'
  26. column :ignore, 'boolean'
  27. end
  28. end
  29. helpers Flickr::Login::Helpers
  30. helpers do
  31. def flickr
  32. unless @flickr
  33. @flickr = FlickRaw::Flickr.new(api_key: settings.flickr_api_key, shared_secret: settings.flickr_shared_secret)
  34. @flickr.access_token, @flickr.access_secret = flickr_access_token
  35. end
  36. @flickr
  37. end
  38. end
  39. before do
  40. redirect to('/login?perms=write') unless flickr_user
  41. end
  42. get '/' do
  43. erb :index
  44. end
  45. get '/logout' do
  46. flickr_clear
  47. redirect to('/')
  48. end
  49. =begin
  50. def list(user)
  51. all_photos = []
  52. page = 0
  53. begin
  54. photos = flickr.photos.search(user_id: user, extras: 'license', per_page: 500, page: page += 1)
  55. all_photos.push(*photos.to_a)
  56. end until photos.size < 500
  57. all_photos
  58. end
  59. =end