diff --git a/.gitignore b/.gitignore index bd8338dc5..1fbfd2e04 100644 --- a/.gitignore +++ b/.gitignore @@ -19,3 +19,4 @@ bin/* nbproject config/initializers/secret_token.rb public/source.tar +config/fb_config.yml diff --git a/README.md b/README.md index f21676bdd..57bb01c4e 100644 --- a/README.md +++ b/README.md @@ -18,13 +18,11 @@ instructions. You are welcome to contribute, add to and extend Diaspora however you see fit. We will do our best to incorporate everything that meets our guidelines. -We need you to fill out a -[contributor agreement form](https://spreadsheets.google.com/a/joindiaspora.com/viewform?formkey=dGI2cHA3ZnNHLTJvbm10LUhXRTJjR0E6MQ&theme=0AX42CRMsmRFbUy1iOGYwN2U2Mi1hNWU0LTRlNjEtYWMyOC1lZmU4ODg1ODc1ODI&ifq) -before we can accept your patches. The agreement gives Diaspora joint -ownership of the patch so the copyright isn't scattered. You can find it -[here](https://spreadsheets.google.com/a/joindiaspora.com/viewform?formkey=dGI2cHA3ZnNHLTJvbm10LUhXRTJjR0E6MQ&theme=0AX42CRMsmRFbUy1iOGYwN2U2Mi1hNWU0LTRlNjEtYWMyOC1lZmU4ODg1ODc1ODI&ifq). +Please do not rebase our tree into yours. +See [here](http://www.mail-archive.com/dri-devel@lists.sourceforge.net/msg39091.html) +for when to rebase. -All commits must be tested, and after each commit, all tests should be green +All commits must be tested, and all your tests should be green before a pull request is sent. Please write your tests in Rspec. GEMS: We would like to keep external dependencies unduplicated. We're using @@ -32,6 +30,12 @@ Nokogiri, Mongomapper, and EM::HttpRequest as much as possible. We have a few gems in the project we'd rather not use, but if you can, use dependencies we already have. +We need you to fill out a +[contributor agreement form](https://spreadsheets.google.com/a/joindiaspora.com/viewform?formkey=dGI2cHA3ZnNHLTJvbm10LUhXRTJjR0E6MQ&theme=0AX42CRMsmRFbUy1iOGYwN2U2Mi1hNWU0LTRlNjEtYWMyOC1lZmU4ODg1ODc1ODI&ifq) +before we can accept your patches. The agreement gives Diaspora joint +ownership of the patch so the copyright isn't scattered. You can find it +[here](https://spreadsheets.google.com/a/joindiaspora.com/viewform?formkey=dGI2cHA3ZnNHLTJvbm10LUhXRTJjR0E6MQ&theme=0AX42CRMsmRFbUy1iOGYwN2U2Mi1hNWU0LTRlNjEtYWMyOC1lZmU4ODg1ODc1ODI&ifq). + ## Resources We are maintaining a diff --git a/app/controllers/aspects_controller.rb b/app/controllers/aspects_controller.rb index cf9cc1583..3b9180be8 100644 --- a/app/controllers/aspects_controller.rb +++ b/app/controllers/aspects_controller.rb @@ -52,7 +52,7 @@ class AspectsController < ApplicationController @fb_access_url = MiniFB.oauth_url(FB_APP_ID, APP_CONFIG[:pod_url] + "services/create", :scope=>MiniFB.scopes.join(",")) - @posts = current_user.visible_posts(:public => true).paginate :page => params[:page], :per_page => 15, :order => 'created_at DESC' + @posts = current_user.visible_posts(:person_id => current_user.person.id, :public => true).paginate :page => params[:page], :per_page => 15, :order => 'created_at DESC' respond_with @aspect end diff --git a/app/controllers/photos_controller.rb b/app/controllers/photos_controller.rb index 4d865573c..dca510374 100644 --- a/app/controllers/photos_controller.rb +++ b/app/controllers/photos_controller.rb @@ -9,7 +9,8 @@ class PhotosController < ApplicationController respond_to :json, :only => :show def create - album = Album.find_by_id params[:album_id] + album = current_user.find_visible_post_by_id( params[:album_id] ) + begin ######################## dealing with local files ############# diff --git a/app/controllers/publics_controller.rb b/app/controllers/publics_controller.rb index e3c90fc16..311fdf73f 100644 --- a/app/controllers/publics_controller.rb +++ b/app/controllers/publics_controller.rb @@ -28,6 +28,12 @@ class PublicsController < ApplicationController end end + def hub + if params['hub.mode'] == 'subscribe' || params['hub.mode'] == 'unsubscribe' + render :text => params['hub.challenge'], :status => 202, :layout => false + end + end + def receive render :nothing => true return unless params[:xml] diff --git a/app/controllers/users_controller.rb b/app/controllers/users_controller.rb index 4a68d8bd2..ab8939b87 100644 --- a/app/controllers/users_controller.rb +++ b/app/controllers/users_controller.rb @@ -13,7 +13,7 @@ class UsersController < ApplicationController @user = current_user @person = @user.person @profile = @user.person.profile - @photos = Photo.find_all_by_person_id(@person.id).paginate :page => params[:page], :order => 'created_at DESC' + @photos = current_user.visible_posts(:person_id => current_user.person.id, :_type => 'Photo').paginate :page => params[:page], :order => 'created_at DESC' @fb_access_url = MiniFB.oauth_url(FB_APP_ID, APP_CONFIG[:pod_url] + "services/create", :scope=>MiniFB.scopes.join(",")) @@ -49,7 +49,7 @@ class UsersController < ApplicationController director = Diaspora::Director.new ostatus_builder = Diaspora::OstatusBuilder.new(user) - render :xml => director.build(ostatus_builder) + render :xml => director.build(ostatus_builder), :content_type => 'application/atom+xml' else flash[:error] = "User #{params[:username]} does not exist!" redirect_to root_url diff --git a/app/models/person.rb b/app/models/person.rb index 28503e921..a6d295529 100644 --- a/app/models/person.rb +++ b/app/models/person.rb @@ -110,7 +110,7 @@ class Person hcard = HCard.find profile.hcard.first[:href] new_person.url = hcard[:url] - new_person.profile = Profile.new(:first_name => hcard[:given_name], :last_name => hcard[:family_name]) + new_person.profile = Profile.new(:first_name => hcard[:given_name], :last_name => hcard[:family_name], :image_url => hcard[:photo]) if new_person.save new_person else diff --git a/app/models/status_message.rb b/app/models/status_message.rb index c616efc5e..b509bfe5a 100644 --- a/app/models/status_message.rb +++ b/app/models/status_message.rb @@ -13,12 +13,13 @@ class StatusMessage < Post def to_activity <<-XML - http://activitystrea.ms/schema/1.0/post - #{self.message} - - #{person.url}status_messages/#{self.id} - #{self.created_at.xmlschema} - #{self.updated_at.xmlschema} + #{self.message} + + #{person.url}status_messages/#{self.id} + #{self.created_at.xmlschema} + #{self.updated_at.xmlschema} + http://activitystrea.ms/schema/1.0/post + http://activitystrea.ms/schema/1.0/note XML end diff --git a/app/models/user.rb b/app/models/user.rb index 2f63f4b5f..15c3515c2 100644 --- a/app/models/user.rb +++ b/app/models/user.rb @@ -167,6 +167,8 @@ class User target_people = target_people | aspect.people } + push_to_hub(post) if post.respond_to?(:public) && post.public + push_to_people(post, target_people) end @@ -179,10 +181,14 @@ class User end def push_to_person( person, xml ) - Rails.logger.debug("Adding xml for #{self} to message queue to #{url}") - QUEUE.add_post_request( person.receive_url, xml ) - QUEUE.process + Rails.logger.debug("Adding xml for #{self} to message queue to #{self.url}") + QUEUE.add_post_request( person.receive_url, xml ) + QUEUE.process + end + def push_to_hub(post) + Rails.logger.debug("Pushing update to pubsub server #{APP_CONFIG[:pubsub_server]} with url #{self.public_url}") + QUEUE.add_hub_notification(APP_CONFIG[:pubsub_server], self.public_url) end def salmon( post ) diff --git a/app/views/publics/hcard.erb b/app/views/publics/hcard.erb index 9e3f27796..17b0ebdb7 100644 --- a/app/views/publics/hcard.erb +++ b/app/views/publics/hcard.erb @@ -33,6 +33,12 @@ <%= @person.url%> +
+
Photo
+
+ <%= @person.profile.image_url%> +
+
Note
Diaspora is awesome! vi is better than emacs!
diff --git a/app/views/publics/webfinger.erb b/app/views/publics/webfinger.erb index 47b76e6e6..b689f2a54 100644 --- a/app/views/publics/webfinger.erb +++ b/app/views/publics/webfinger.erb @@ -5,5 +5,8 @@ + + + diff --git a/app/views/shared/_aspect_friends.haml b/app/views/shared/_aspect_friends.haml index f8e635f8d..e24dc5537 100644 --- a/app/views/shared/_aspect_friends.haml +++ b/app/views/shared/_aspect_friends.haml @@ -6,11 +6,11 @@ = owner_image_link - for friend in @friends = person_image_link(friend) - - if @logged_in && (@aspect == :public) - %h3 Facebook Friends - - @fb_friends = MiniFB.get(@access_token, 'me', :type => "friends") - - @fb_friends[:data].each do |friend| - = image_tag( "http://graph.facebook.com/#{friend[:id]}/picture" ) + - if @logged_in && (@aspect == :public) + %h3 Facebook Friends + - @fb_friends = MiniFB.get(@access_token, 'me', :type => "friends") + - @fb_friends[:data].each do |friend| + = image_tag( "http://graph.facebook.com/#{friend[:id]}/picture" ) -unless (@aspect == :all) || (@aspect == :public) = link_to (image_tag('add_friend_button.png', :height => "50px", :width => "50px")), "#add_request_pane", :id => 'add_request_button' diff --git a/app/views/users/_profile.haml b/app/views/users/_profile.haml index 78304d183..8cffa53cb 100644 --- a/app/views/users/_profile.haml +++ b/app/views/users/_profile.haml @@ -57,7 +57,7 @@ #submit_block = link_to t('.cancel'), root_path - or + = t('.or') = f.submit t('.update_profile') #content_bottom diff --git a/app/views/users/_services.haml b/app/views/users/_services.haml index f2d976a79..fd1894d11 100644 --- a/app/views/users/_services.haml +++ b/app/views/users/_services.haml @@ -5,19 +5,20 @@ %h2 Services -%h3 Facebook -%p - - if @logged_in - = connected_fb_as(@access_token) - - %p - - @fb_friends = MiniFB.get(@access_token, 'me', :type => "friends") - - @fb_friends[:data].each do |friend| - = image_tag( "http://graph.facebook.com/#{friend[:id]}/picture" ) +- if FACEBOOK + %h3 Facebook + %p + - if @logged_in + = connected_fb_as(@access_token) + + %p + - @fb_friends = MiniFB.get(@access_token, 'me', :type => "friends") + - @fb_friends[:data].each do |friend| + = image_tag( "http://graph.facebook.com/#{friend[:id]}/picture" ) - = link_to "Disconnect from Facebook", services_destroy_path - - else - = link_to "Connect to Facebook (DO NOT USE WITH A REAL ACCOUNT)", @fb_access_url + = link_to "Disconnect from Facebook", services_destroy_path + - else + = link_to "Connect to Facebook (DO NOT USE WITH A REAL ACCOUNT)", @fb_access_url #content_bottom .back diff --git a/config/deploy.rb b/config/deploy.rb index 98d8971f7..66c642885 100644 --- a/config/deploy.rb +++ b/config/deploy.rb @@ -56,6 +56,11 @@ namespace :deploy do run "ln -s -f #{shared_path}/app_config.yml #{current_path}/config/app_config.yml" end + task :symlink_fb_config do + run "touch #{shared_path}/fb_config.yml" + run "ln -s -f #{shared_path}/fb_config.yml #{current_path}/config/fb_config.yml" + end + task :start do start_mongo start_thin @@ -152,4 +157,4 @@ namespace :db do end -after "deploy:symlink", "deploy:symlink_images", "deploy:symlink_bundle", 'deploy:symlink_config' +after "deploy:symlink", "deploy:symlink_images", "deploy:symlink_bundle", 'deploy:symlink_config', 'deploy:symlink_fb_config' diff --git a/config/deploy_config.yml b/config/deploy_config.yml index c53f90d60..c7477314a 100644 --- a/config/deploy_config.yml +++ b/config/deploy_config.yml @@ -6,7 +6,7 @@ cross_server: deploy_to: '/usr/local/app/diaspora' user: 'root' repo: 'git://github.com/diaspora/diaspora.git' - branch: 'salmon_refactor' + branch: 'master' default_env: 'development' servers: tom: diff --git a/config/environment.rb b/config/environment.rb index 6b960209f..ddfc9c247 100644 --- a/config/environment.rb +++ b/config/environment.rb @@ -7,13 +7,17 @@ require File.expand_path('../application', __FILE__) Haml::Template.options[:format] = :html5 Haml::Template.options[:escape_html] = true -# Load facebook connection application credentials -fb_config = YAML::load(File.open(File.expand_path("./config/fb_config.yml"))) -FB_API_KEY = fb_config['fb_api_key'] -FB_SECRET = fb_config['fb_secret'] -FB_APP_ID = fb_config['fb_app_id'] -HOST = fb_config['host'] - +if File.exists?(File.expand_path("./config/fb_config.yml")) + # Load facebook connection application credentials + fb_config = YAML::load(File.open(File.expand_path("./config/fb_config.yml"))) + FB_API_KEY = fb_config['fb_api_key'] + FB_SECRET = fb_config['fb_secret'] + FB_APP_ID = fb_config['fb_app_id'] + HOST = fb_config['host'] + FACEBOOK = true +else + FACEBOOK = false +end # Initialize the rails application Diaspora::Application.initialize! diff --git a/config/fb_config.yml.example b/config/fb_config.yml.example new file mode 100644 index 000000000..5bb145316 --- /dev/null +++ b/config/fb_config.yml.example @@ -0,0 +1,4 @@ +fb_api_key: {key} +fb_secret: {secret} +fb_app_id: {app_id} +host: http://localhost:3000/ diff --git a/config/locales/devise/devise.he.yml b/config/locales/devise/devise.he.yml index c33cfa678..997ab6df0 100644 --- a/config/locales/devise/devise.he.yml +++ b/config/locales/devise/devise.he.yml @@ -18,7 +18,7 @@ he: invalid: "הססמה או הדוא״ל שגויים." invalid_token: "אסימון האימות שגוי." timeout: "ההפעלה שלך פגה, נא להיכנס שוב כדי להמשיך." - inactive: "חשבונך לא הופעל עדין." + inactive: "חשבונך לא הופעל עדיין." sessions: signed_in: "נכנסת בהצלחה." signed_out: "יצאת בהצלחה." diff --git a/config/locales/diaspora/en.yml b/config/locales/diaspora/en.yml index 838339641..5595c4caa 100644 --- a/config/locales/diaspora/en.yml +++ b/config/locales/diaspora/en.yml @@ -113,6 +113,7 @@ en: albums: "Albums" you_dont_have_any_photos: "You don't have any photos! Go to the" page_to_upload_some: "page to upload some." + or: "or" comments: comment: ago: "ago" diff --git a/config/locales/diaspora/he.yml b/config/locales/diaspora/he.yml index 47f2a52c2..1105a3bcb 100644 --- a/config/locales/diaspora/he.yml +++ b/config/locales/diaspora/he.yml @@ -86,7 +86,7 @@ he: add_a_new_aspect: "הוספת היבט חדש" create: "יציאה" create: - success: "יש ללחוץ על סמל הפלוס שמימין כדי לומר לדיאספורה מי יעול לצפות בהיבט החדש שלך." + success: "יש ללחוץ על סמל הפלוס שמימין כדי לומר לדיאספורה מי יכול לצפות בהיבט החדש שלך." destroy: success: "%{name} הוסר בהצלחה." update: @@ -99,7 +99,7 @@ he: success: "כעת יופיע בפני החברים שלך היבט אחר שלך." helper: remove: "הסרה" - aspect_not_empty: "ההיסט אינו ריק" + aspect_not_empty: "ההיבט אינו ריק" users: edit: editing_profile: "עריכת הפרופיל" @@ -134,13 +134,13 @@ he: delete_photo: "מחיקת תמונה" photo: show_comments: "הצגת הערות" - posted_a_new_photo_to: "פורסמה תמונה חדשה אל" + posted_a_new_photo_to: "פורסמה תמונה חדשה באלבום" new: new_photo: "תמונה חדשה" back_to_list: "חזרה לרשימה" post_it: "פרסום!" create: - runtime_error: "העלאת התמונה נכשלה. האם החגורה שלך מהודקת?" + runtime_error: "העלאת התמונה נכשלה. הידקת את החגורה?" integrity_error: "העלאת התמונה נכשלה. האם זו באמת הייתה תמונה?" type_error: "העלאת התמונה נכשלה. האם באמת נוספה תמונה?" update: @@ -155,7 +155,7 @@ he: success: "הצטרפת לדיאספורה!" status_messages: new_status_message: - tell_me_something_good: "בא לי לשמוע סיפור טוב" + tell_me_something_good: "בא לי לשמוע סיפור נחמד" oh_yeah: "אחלה!" status_message: show_comments: "הצגת הערות" @@ -165,7 +165,7 @@ he: status_message: "הודעת מצב" comments: "הערות" are_you_sure: "בבטחה?" - destroy: "הריבה" + destroy: "הריסה" view_all: "צפייה בכול" message: "הודעה" owner: "בעלים" diff --git a/config/locales/diaspora/it.yml b/config/locales/diaspora/it.yml index 24681fbe0..fe4b305cc 100644 --- a/config/locales/diaspora/it.yml +++ b/config/locales/diaspora/it.yml @@ -85,6 +85,7 @@ it: create: "Crea" create: success: "Clicca sul segno più nella parte sinistra per dire a Diaspora chi può vedere il tuo nuovo aspetto." + failure: "Creazione dell'aspetto fallita." destroy: success: "%{name} è stato rimosso con successo." update: diff --git a/config/locales/diaspora/ru.yml b/config/locales/diaspora/ru.yml index daeb35915..f432c82d6 100644 --- a/config/locales/diaspora/ru.yml +++ b/config/locales/diaspora/ru.yml @@ -66,7 +66,10 @@ ru: add_a_new_aspect: "Добавить аспект" create: "Создать" create: - success:"Нажмите на плюс слева, для того, что-бы указать Diaspora тех, кто может видеть ваш новый аспект." + success:"Нажмите на плюс слева, для того, что-бы указать Diaspora тех, кто может видеть ваш новый аспект + helper: + remove: "Удалить" + aspect_not_empty: "Аспект не пуст" users: edit: editing_profile: "Редактирование профиля" @@ -79,8 +82,9 @@ ru: picture: "Аватар" editing_profile: "Редактирование профиля" albums: "Альбомы" - you_dont_have_any_photos: "У вас нет ни одной фотографии! Перейдите на " - page_to_upload_some: "страницу для загрузки." + you_dont_have_any_photos: "У вас нет ни одной фотографии! Перейдите в" + page_to_upload_some: "для загрузки." + or: "или" comments: comment: ago: "ранее" @@ -142,3 +146,18 @@ ru: save: "сохранить" are_you_sure: "Вы уверены?" remove_friend: "удалить друга" + requests: + new_request: + add_a_new_friend_to: "добавить нового друга к" + enter_a_diaspora_username: "Введите имя пользователя Diaspora:" + your_diaspora_username_is: "Ваше имя пользователя Diaspora: %{diaspora_handle}" + friends_username: "Имя пользователя друга" + destroy: + success: "Теперь вы друзья." + error: "Выберите аспект!" + ignore: "Игнорированные запросы дружбы." + create: + error: "Для этого адреса не найдено семя Diaspora!" + already_friends: "Вы уже друзья с %{destination_url}!" + success: "Запрос на дружбу выслан к %{destination_url}." + horribly_wrong: "Что-то пошло совсем не так." diff --git a/config/routes.rb b/config/routes.rb index 56ec559c9..16f6a9c98 100644 --- a/config/routes.rb +++ b/config/routes.rb @@ -43,6 +43,8 @@ Diaspora::Application.routes.draw do match 'webfinger', :to => 'publics#webfinger' match 'hcard/users/:id', :to => 'publics#hcard' + match 'hub', :to => 'publics#hub' + match '.well-known/host-meta',:to => 'publics#host_meta' match 'receive/users/:id', :to => 'publics#receive' match 'log', :to => "dev_utilities#log" diff --git a/lib/diaspora/ostatus_builder.rb b/lib/diaspora/ostatus_builder.rb index 997e538f3..f75495ad2 100644 --- a/lib/diaspora/ostatus_builder.rb +++ b/lib/diaspora/ostatus_builder.rb @@ -24,40 +24,41 @@ module Diaspora end def create_headers - <<-XML.strip - - - Diaspora - #{@user.username}/public - Stream - its a stream - #{Time.now.xmlschema} - - #{@user.real_name} - #{@user.public_url} - + <<-XML + + +Diaspora +#{@user.public_url}.atom +#{@user.real_name}'s Public Feed +its a stream +#{Time.now.xmlschema} + + #{@user.real_name} + #{@user.public_url} + XML end def create_endpoints <<-XML - + + XML end def create_subject <<-XML - - http://activitystrea.ms/schema/1.0/person - #{@user.public_url} - #{@user.real_name} - - + + http://activitystrea.ms/schema/1.0/person + #{@user.public_url} + #{@user.real_name} + + XML end def create_body - @user.visible_posts(:public=>true).inject("") do |xml,curr| + @user.visible_posts(:person_id => @user.person.id, :public=>true).inject("") do |xml,curr| if curr.respond_to?(:to_activity) unless xml curr.to_activity @@ -70,7 +71,7 @@ module Diaspora def create_footer <<-XML - + XML end end diff --git a/lib/hcard.rb b/lib/hcard.rb index 5640e711b..e6baa49fd 100644 --- a/lib/hcard.rb +++ b/lib/hcard.rb @@ -7,6 +7,7 @@ module HCard doc = Nokogiri::HTML(Net::HTTP.get URI.parse(url)) {:given_name => doc.css(".given_name").text, :family_name => doc.css(".family_name").text, - :url => doc.css("#pod_location").text} + :url => doc.css("#pod_location").text, + :photo => doc.css(".photo")} end end diff --git a/lib/message_handler.rb b/lib/message_handler.rb index e6ce75ffc..351ca99d6 100644 --- a/lib/message_handler.rb +++ b/lib/message_handler.rb @@ -20,6 +20,10 @@ class MessageHandler [*destinations].each{|dest| @queue.push(Message.new(:post, dest, :body => b))} end + def add_hub_notification(hub_url, feed_url) + @queue.push(Message.new(:hub_publish, hub_url, :body => feed_url)) + end + def process @queue.pop{ |query| case query.type @@ -29,6 +33,9 @@ class MessageHandler when :get http = EventMachine::HttpRequest.new(query.destination).get :timeout => TIMEOUT http.callback {process} + when :hub_publish + http = EventMachine::PubSubHubbub.new(query.destination).publish :timeout => TIMEOUT + http.callback {process; Rails.logger.debug(http.response)} else raise "message is not a type I know!" end diff --git a/public/javascripts/fancybox/jquery.easing-1.3.pack.js b/public/javascripts/fancybox/jquery.easing-1.3.pack.js old mode 100755 new mode 100644 diff --git a/public/javascripts/fancybox/jquery.fancybox-1.3.1.css b/public/javascripts/fancybox/jquery.fancybox-1.3.1.css old mode 100755 new mode 100644 diff --git a/public/javascripts/fancybox/jquery.fancybox-1.3.1.js b/public/javascripts/fancybox/jquery.fancybox-1.3.1.js old mode 100755 new mode 100644 diff --git a/public/javascripts/fancybox/jquery.fancybox-1.3.1.pack.js b/public/javascripts/fancybox/jquery.fancybox-1.3.1.pack.js old mode 100755 new mode 100644 diff --git a/public/javascripts/fancybox/jquery.mousewheel-3.0.2.pack.js b/public/javascripts/fancybox/jquery.mousewheel-3.0.2.pack.js old mode 100755 new mode 100644 diff --git a/public/javascripts/fileuploader.js b/public/javascripts/fileuploader.js old mode 100755 new mode 100644 diff --git a/public/javascripts/jquery.cycle/jquery.cycle.lite.min.js b/public/javascripts/jquery.cycle/jquery.cycle.lite.min.js old mode 100755 new mode 100644 diff --git a/public/javascripts/jquery.infieldlabel.js b/public/javascripts/jquery.infieldlabel.js old mode 100755 new mode 100644 diff --git a/public/javascripts/web_socket.js b/public/javascripts/web_socket.js old mode 100755 new mode 100644 diff --git a/public/stylesheets/blueprint/src/grid.css b/public/stylesheets/blueprint/src/grid.css old mode 100755 new mode 100644 diff --git a/public/stylesheets/blueprint/src/print.css b/public/stylesheets/blueprint/src/print.css old mode 100755 new mode 100644 diff --git a/public/stylesheets/blueprint/src/reset.css b/public/stylesheets/blueprint/src/reset.css old mode 100755 new mode 100644 diff --git a/public/stylesheets/brandongrotesque_light/Brandon_light-webfont.svg b/public/stylesheets/brandongrotesque_light/Brandon_light-webfont.svg old mode 100755 new mode 100644 diff --git a/public/stylesheets/brandongrotesque_light/demo.html b/public/stylesheets/brandongrotesque_light/demo.html old mode 100755 new mode 100644 diff --git a/public/stylesheets/brandongrotesque_light/stylesheet.css b/public/stylesheets/brandongrotesque_light/stylesheet.css old mode 100755 new mode 100644 diff --git a/public/stylesheets/fileuploader.css b/public/stylesheets/fileuploader.css old mode 100755 new mode 100644 diff --git a/script/server b/script/server index da43895fd..c5357a32e 100755 --- a/script/server +++ b/script/server @@ -7,9 +7,13 @@ then echo "Mongod not started" else mkdir -p -v log/thin/ - #force AGPL - tar cf ../_source.tar -X .gitignore * - mv ../_source.tar public/source.tar + #force AGPL + test -w public -a ! -e public/source.tar && + tar cf public/source.tar --exclude='source.tar' -X .gitignore * + test -e public/source.tar || { + echo "Can't find, or even create, public/source.tar. Giving up" + exit 2 + } bundle exec ruby ./script/websocket_server.rb& bundle exec thin start $@ fi diff --git a/spec/lib/message_handler_spec.rb b/spec/lib/message_handler_spec.rb index cb0592e9a..ddc822334 100644 --- a/spec/lib/message_handler_spec.rb +++ b/spec/lib/message_handler_spec.rb @@ -94,6 +94,26 @@ describe MessageHandler do end end + describe "Hub publish" do + it 'should correctly queue up a pubsubhubbub publish request' do + destination = "http://identi.ca/hub/" + feed_location = "http://google.com/" + + EventMachine.run { + @handler.add_hub_notification(destination, feed_location) + q = @handler.instance_variable_get(:@queue) + + message = "" + q.pop{|m| message = m} + + message.destination.should == destination + message.body.should == feed_location + + EventMachine.stop + } + end + end + describe "Mixed Queries" do it 'should process both POST and GET requests in the same queue' do diff --git a/spec/models/user_spec.rb b/spec/models/user_spec.rb index 7d072bdd5..d21b1d57c 100644 --- a/spec/models/user_spec.rb +++ b/spec/models/user_spec.rb @@ -12,12 +12,16 @@ describe User do user = Factory.build(:user, :username => "ALLUPPERCASE") user.valid? user.username.should == "alluppercase" + + user = Factory.build(:user, :username => "someUPPERCASE") + user.valid? + user.username.should == "someuppercase" end end describe '#diaspora_handle' do it 'uses the pod config url to set the diaspora_handle' do - user.diaspora_handle.should == user.username + "@example.org" + user.diaspora_handle.should == user.username + "@" + APP_CONFIG[:terse_pod_url] end end