Changesets can be listed by changeset number.
The Git repository is here.
- Revision:
- 13
- Log:
Initial import of Typo 2.6.0 sources from a downloaded Tarball.
Typo is a Ruby On Rails based blog engine.
- Author:
- adh
- Date:
- Sat Jul 22 22:25:02 +0100 2006
- Size:
- 2699 Bytes
1 | module BloggerStructs |
2 | class Blog < ActionWebService::Struct |
3 | member :url, :string |
4 | member :blogid, :string |
5 | member :blogName, :string |
6 | end |
7 | class User < ActionWebService::Struct |
8 | member :userid, :string |
9 | member :firstname, :string |
10 | member :lastname, :string |
11 | member :nickname, :string |
12 | member :email, :string |
13 | member :url, :string |
14 | end |
15 | end |
16 | |
17 | |
18 | class BloggerApi < ActionWebService::API::Base |
19 | inflect_names false |
20 | |
21 | api_method :deletePost, |
22 | :expects => [ {:appkey => :string}, {:postid => :int}, {:username => :string}, {:password => :string}, |
23 | {:publish => :bool} ], |
24 | :returns => [:bool] |
25 | |
26 | api_method :getUserInfo, |
27 | :expects => [ {:appkey => :string}, {:username => :string}, {:password => :string} ], |
28 | :returns => [BloggerStructs::User] |
29 | |
30 | api_method :getUsersBlogs, |
31 | :expects => [ {:appkey => :string}, {:username => :string}, {:password => :string} ], |
32 | :returns => [[BloggerStructs::Blog]] |
33 | |
34 | api_method :newPost, |
35 | :expects => [ {:appkey => :string}, {:blogid => :string}, {:username => :string}, {:password => :string}, |
36 | {:content => :string}, {:publish => :bool} ], |
37 | :returns => [:int] |
38 | end |
39 | |
40 | |
41 | class BloggerService < TypoWebService |
42 | web_service_api BloggerApi |
43 | |
44 | before_invocation :authenticate |
45 | attr_reader :controller |
46 | |
47 | def initialize(controller) |
48 | @controller = controller |
49 | end |
50 | |
51 | def deletePost(appkey, postid, username, password, publish) |
52 | article = Article.find(postid) |
53 | article.destroy |
54 | true |
55 | end |
56 | |
57 | def getUserInfo(appkey, username, password) |
58 | BloggerStructs::User.new( |
59 | :userid => username, |
60 | :firstname => "", |
61 | :lastname => "", |
62 | :nickname => username, |
63 | :email => "", |
64 | :url => controller.url_for(:controller => "/") |
65 | ) |
66 | end |
67 | |
68 | def getUsersBlogs(appkey, username, password) |
69 | [BloggerStructs::Blog.new( |
70 | :url => controller.url_for(:controller => "/"), |
71 | :blogid => 1, |
72 | :blogName => config[:blog_name] |
73 | )] |
74 | end |
75 | |
76 | def newPost(appkey, blogid, username, password, content, publish) |
77 | title, categories, body = content.match(%r{^<title>(.+?)</title>(?:<category>(.+?)</category>)?(.+)$}mi).captures rescue nil |
78 | |
79 | article = Article.new |
80 | article.body = body || content || '' |
81 | article.title = title || content.split.slice(0..5).join(' ') || '' |
82 | article.published = publish ? 1 : 0 |
83 | article.author = username |
84 | article.created_at = Time.now |
85 | article.user = @user |
86 | |
87 | if categories |
88 | categories.split(",").each do |c| |
89 | article.categories << Category.find_by_name(c.strip) rescue nil |
90 | end |
91 | end |
92 | |
93 | article.save |
94 | article.id |
95 | end |
96 | |
97 | end |