/[Grep]/lib/Grep/Model/Feed.pm
This is repository of my old source code which isn't updated any more. Go to git.rot13.org for current projects!
ViewVC logotype

Annotation of /lib/Grep/Model/Feed.pm

Parent Directory Parent Directory | Revision Log Revision Log


Revision 81 - (hide annotations)
Fri Feb 23 18:09:41 2007 UTC (17 years, 2 months ago) by dpavlin
File size: 1932 byte(s)
decode special chars from bookmarklet
1 dpavlin 2 use strict;
2     use warnings;
3    
4     package Grep::Model::Feed;
5     use Jifty::DBI::Schema;
6    
7 dpavlin 19 use Feed::Find;
8 dpavlin 58 use Scalar::Defer;
9     use Grep::Model::User;
10 dpavlin 19
11 dpavlin 2 use Grep::Record schema {
12    
13     column uri =>
14     type is 'text',
15     label is 'URI',
16 dpavlin 19 hints is 'Replace search string in URI with %s (grep will be replaced automatically)',
17 dpavlin 65 is mandatory;
18 dpavlin 2
19 dpavlin 3 column title =>
20     type is 'text',
21 dpavlin 19 label is 'Title',
22 dpavlin 12 hints is 'Use something descriptive to you',
23 dpavlin 3 since '0.0.2';
24    
25 dpavlin 19 column cookie =>
26     type is 'text',
27     label is 'Cookie',
28     render as 'textarea',
29 dpavlin 73 hints is 'If you leave Cookie data Grep will impersonate you to feed provider!',
30 dpavlin 19 since '0.0.3';
31    
32 dpavlin 58 column owner =>
33     refers_to Grep::Model::User by 'id',
34     label is 'Feed owner',
35     default is defer { Jifty->web->current_user->id },
36     since '0.0.5';
37    
38     column created_on =>
39     type is 'timestamp',
40     label is 'Created On',
41     default is defer { DateTime->now },
42     filters are 'Jifty::DBI::Filter::DateTime',
43     since '0.0.5';
44    
45 dpavlin 73 column source =>
46     type is 'text',
47     label is 'Source',
48     default is 'Grep::Source::Feed',
49     # available are defer { Grep::Source::Feed->sources },
50     since '0.0.6';
51    
52 dpavlin 2 };
53    
54 dpavlin 3 sub since { '0.0.1' }
55    
56 dpavlin 2 # Your model-specific methods go here.
57    
58 dpavlin 19 =head2 search_uri
59    
60     print $feed->search_uri('search string');
61    
62     This function will decode field delimiters C<|!|> into normal C<;>
63     (which are protected to make AJAX validation work)
64    
65     =cut
66    
67     sub search_uri {
68     my $self = shift;
69     my $search = shift;
70    
71     my $uri = $self->uri or die "no uri?";
72     $uri =~ s/\Q|!|\E/;/g;
73 dpavlin 81 $uri =~ s/{x!(26|3b)}/chr(hex($1))/gei;
74 dpavlin 19 return sprintf( $uri, $search );
75     }
76    
77    
78 dpavlin 37 sub current_user_can {
79     my $self = shift;
80     my $what = shift;
81    
82 dpavlin 58 my $uid = Jifty->web->current_user->id;
83 dpavlin 37
84 dpavlin 58 return 1 if ( $uid && $what eq 'create' );
85    
86     return 1 if ( $uid && ! $self->id );
87    
88 dpavlin 70 # Jifty->log->debug("current_user[$uid]_can($what) on Feed ", $self->id || '???', " owner ", $self->owner->id || '???');
89 dpavlin 58
90     return 1 if ( $uid == $self->owner->id );
91    
92 dpavlin 37 }
93    
94 dpavlin 2 1;
95    

  ViewVC Help
Powered by ViewVC 1.1.26