forked from ak1nor1/Tumblrful
/
YammerPostAdaptor.m
87 lines (72 loc) · 2.04 KB
/
YammerPostAdaptor.m
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
/**
* @file YammerPostAdaptor.m
*/
#import "YammerPostAdaptor.h"
#import "YammerPost.h"
#import "NSString+Tumblrful.h"
#import "DebugLog.h"
@implementation YammerPostAdaptor
#pragma mark -
#pragma mark Override Methods
+ (NSString *)titleForMenuItem
{
return @"Yammer";
}
+ (BOOL)enableForMenuItem:(NSString *)postType
{
static NSArray * enablePostTypes = nil;
if ([YammerPost enabled]) {
if (enablePostTypes == nil) {
enablePostTypes = [NSArray arrayWithObjects:
[NSString stringWithPostType:LinkPostType]
, [NSString stringWithPostType:QuotePostType]
, nil];
[enablePostTypes retain];
}
postType = [postType capitalizedString];
return [enablePostTypes indexOfObject:postType] != NSNotFound;
}
return NO;
}
- (void)postLink:(Anchor *)anchor description:(NSString *)description
{
if (![YammerPost enabled]) return;
@try {
NSMutableString * body = [NSMutableString string];
if (description != nil && [description length] > 0)
[body appendFormat:@"%@ ", description];
[body appendFormat:@"[%@](%@)", anchor.title, anchor.URL];
// Yammerへポストするオブジェクトを生成する
YammerPost * yammer = [[YammerPost alloc] initWithCallback:callback_];
// リクエストパラメータを構築する
NSMutableDictionary * params = [yammer createMinimumRequestParams];
[params setObject:body forKey:@"body"];
D0([params description]);
// ポストする
[yammer postWith:params];
}
@catch (NSException * e) {
D0([e description]);
[self callbackWithException:e];
}
}
- (void)postQuote:(NSString *)quote source:(NSString *)source;
{
[self postLink:[Anchor anchorWithHTML:source] description:quote];
}
- (void)postPhoto:(NSString *)source caption:(NSString *)caption throughURL:(NSString *)throughURL image:(NSImage *)image
{
#pragma unused (source, caption, throughURL, image)
// do-nothing
}
- (void)postVideo:(NSString *)embed caption:(NSString*)caption
{
#pragma unused (embed, caption)
// do-nothing
}
- (void)postEntry:(NSDictionary *)params
{
#pragma unused (params)
// do-nothing
}
@end