diff options
Diffstat (limited to 'lib/ballet.pm')
-rw-r--r-- | lib/ballet.pm | 43 |
1 files changed, 32 insertions, 11 deletions
diff --git a/lib/ballet.pm b/lib/ballet.pm index 4be1acc..d42159b 100644 --- a/lib/ballet.pm +++ b/lib/ballet.pm @@ -3,21 +3,31 @@ package ballet; use 5.010; use Dancer ':syntax'; -#use Dancer::Plugin::Auth::Twitter; +use Dancer::Plugin::WebSocket; +use Dancer::Plugin::FlashMessage; +use Dancer::Plugin::Auth::Twitter; use ballet::Git; our $VERSION = '0.1'; -#auth_twitter_init(); +auth_twitter_init(); my $git = ballet::Git->new( wiki_path => setting('wiki_path') ); -# before sub { -# return if request->path =~ m{/auth/twitter/callback}; -# if (not session('twitter_user')) { -# redirect auth_twitter_authenticate_url; -# } +before sub { + return if request->path =~ m{/auth/twitter/callback}; + if (not session('twitter_user')) { + redirect auth_twitter_authenticate_url; + } +}; + +# ws_on_new_listener sub { +# my $user_name = session('twitter_user')->{'screen_name'}; +# ws_send { +# type => 'notification', +# message => "user $user_name has joined the party" +# }; # }; get '/' => sub { wiki_page('Home'); }; @@ -52,7 +62,13 @@ post '/edit/*' => sub { my ($page_name) = splat; my $content = params->{content}; - update_wiki_page($page_name, $content); + update_wiki_page( $page_name, $content ); + ws_send { + type => 'notification', + message => "user " + . session('twitter_user')->{screen_name} + . " has update a page: $page_name", + }; redirect uri_for('/'); }; @@ -68,13 +84,18 @@ sub wiki_page { author => 'franck', date => '10/10/10', content => $content, -# user => session('twitter_user')->{'screen_name'}, + user => session('twitter_user')->{'screen_name'}, }; } sub update_wiki_page { - my ($page_name, $content) = @_; - $git->update_page($page_name, $content); + my ( $page_name, $content ) = @_; + + my $env = + { env => { GIT_COMMITTER_NAME => session('twitter_user')->{screen_name}, GIT_COMMITER_EMAIL => 'franck@cpan.org'} + }; + + $git->update_page( $page_name, $content, $env ); } true; |