├── .gitignore
├── .gitmodules
├── Assets
├── Screenshot.png
└── Zootool Icons.sketch
│ ├── Data
│ ├── Images
│ ├── 2.png
│ ├── 3.png
│ └── 4.png
│ ├── QuickLook
│ ├── Preview.png
│ └── Thumbnail.png
│ ├── fonts
│ └── version
├── Feeds.xcodeproj
├── project.pbxproj
└── project.xcworkspace
│ └── contents.xcworkspacedata
├── Feeds
├── Account.h
├── Account.m
├── AccountCell.h
├── AccountCell.m
├── AppDelegate.h
├── AppDelegate.m
├── BasecampAccount.h
├── BasecampAccount.m
├── BasecampNextAccount.h
├── BasecampNextAccount.m
├── BeanstalkAccount.h
├── BeanstalkAccount.m
├── BitbucketAccount.h
├── BitbucketAccount.m
├── CG+Geometry.h
├── CG+Geometry.m
├── CreateAccountController.h
├── CreateAccountController.m
├── CreateAccountController.xib
├── DribbbleAccount.h
├── DribbbleAccount.m
├── DropmarkAccount.h
├── DropmarkAccount.m
├── ErrorReport.txt
├── Feed.h
├── Feed.m
├── Feeds-Info.plist
├── Feeds-Prefix.pch
├── FreshdeskAccount.h
├── FreshdeskAccount.m
├── GithubAccount.h
├── GithubAccount.m
├── Graphics
│ ├── Accounts.icns
│ ├── AlertCautionIcon.icns
│ ├── ApplicationIcon.icns
│ ├── Basecamp.png
│ ├── Basecamp@2x.png
│ ├── BasecampAccount.png
│ ├── BasecampAccount@2x.png
│ ├── BasecampNotify.png
│ ├── BasecampNotify@2x.png
│ ├── Beanstalk.png
│ ├── Beanstalk@2x.png
│ ├── BeanstalkAccount.png
│ ├── BeanstalkAccount@2x.png
│ ├── BeanstalkNotify.png
│ ├── BeanstalkNotify@2x.png
│ ├── Bitbucket.png
│ ├── Bitbucket@2x.png
│ ├── BitbucketAccount.png
│ ├── BitbucketAccount@2x.png
│ ├── BitbucketNotify.png
│ ├── BitbucketNotify@2x.png
│ ├── Default.png
│ ├── Dribbble.png
│ ├── Dribbble@2x.png
│ ├── DribbbleAccount.png
│ ├── DribbbleAccount@2x.png
│ ├── DribbbleNotify.png
│ ├── DribbbleNotify@2x.png
│ ├── Dropmark.png
│ ├── Dropmark@2x.png
│ ├── DropmarkAccount.png
│ ├── DropmarkAccount@2x.png
│ ├── DropmarkNotify.png
│ ├── DropmarkNotify@2x.png
│ ├── Freshdesk.png
│ ├── Freshdesk@2x.png
│ ├── FreshdeskAccount.png
│ ├── FreshdeskAccount@2x.png
│ ├── FreshdeskNotify.png
│ ├── FreshdeskNotify@2x.png
│ ├── General.icns
│ ├── Github.png
│ ├── Github@2x.png
│ ├── GithubAccount.png
│ ├── GithubAccount@2x.png
│ ├── GithubNotify.png
│ ├── GithubNotify@2x.png
│ ├── Highrise.png
│ ├── Highrise@2x.png
│ ├── HighriseAccount.png
│ ├── HighriseAccount@2x.png
│ ├── HighriseNotify.png
│ ├── HighriseNotify@2x.png
│ ├── PivotalTracker.png
│ ├── PivotalTracker@2x.png
│ ├── PivotalTrackerAccount.png
│ ├── PivotalTrackerAccount@2x.png
│ ├── PivotalTrackerNotify.png
│ ├── PivotalTrackerNotify@2x.png
│ ├── RSSAtom.png
│ ├── RSSAtom@2x.png
│ ├── RSSAtomAccount.png
│ ├── RSSAtomAccount@2x.png
│ ├── RSSAtomNotify.png
│ ├── RSSAtomNotify@2x.png
│ ├── Scholica.png
│ ├── Scholica@2x.png
│ ├── ScholicaAccount.png
│ ├── ScholicaAccount@2x.png
│ ├── ScholicaNotify.png
│ ├── ScholicaNotify@2x.png
│ ├── StatusItem.png
│ ├── StatusItem@2x.png
│ ├── StatusItemInactive.png
│ ├── StatusItemInactive@2x.png
│ ├── StatusItemSelected.png
│ ├── StatusItemSelected@2x.png
│ ├── StatusItemUnread.png
│ ├── StatusItemUnread@2x.png
│ ├── Trello.png
│ ├── Trello@2x.png
│ ├── TrelloAccount.png
│ ├── TrelloAccount@2x.png
│ ├── TrelloNotify.png
│ ├── TrelloNotify@2x.png
│ ├── Unread.png
│ ├── Unread@2x.png
│ ├── UserVoice.png
│ ├── UserVoice@2x.png
│ ├── UserVoiceAccount.png
│ ├── UserVoiceAccount@2x.png
│ ├── UserVoiceNotify.png
│ ├── UserVoiceNotify@2x.png
│ ├── Zendesk.png
│ ├── Zendesk@2x.png
│ ├── ZendeskAccount.png
│ ├── ZendeskAccount@2x.png
│ ├── ZendeskNotify.png
│ └── ZendeskNotify@2x.png
├── Growl Registration Ticket.growlRegDict
├── HighriseAccount.h
├── HighriseAccount.m
├── ISO8601DateFormatter.h
├── ISO8601DateFormatter.m
├── LoginItems.h
├── LoginItems.m
├── MyClass.h
├── MyClass.m
├── NSAlert+Foreground.h
├── NSAlert+Foreground.m
├── NSArray+Linqish.h
├── NSArray+Linqish.m
├── NSData+ObjectFromJSONData.h
├── NSData+ObjectFromJSONData.m
├── NSDate+InternetDateTime.h
├── NSDate+InternetDateTime.m
├── NSDate+TimeAgo.h
├── NSDate+TimeAgo.m
├── NSDictionary+JSONString.h
├── NSDictionary+JSONString.m
├── NSString+Base64.h
├── NSString+Base64.m
├── NSString+EmailValidation.h
├── NSString+EmailValidation.m
├── NSString+English.h
├── NSString+English.m
├── NSString+EntityDecoding.h
├── NSString+EntityDecoding.m
├── NSString+ObjectFromJSONString.h
├── NSString+ObjectFromJSONString.m
├── NSString+Truncated.h
├── NSString+Truncated.m
├── NSString+URLArgument.h
├── NSString+URLArgument.m
├── NSURLRequest+Authorization.h
├── NSURLRequest+Authorization.m
├── NSView+PrintHierarchy.h
├── NSView+PrintHierarchy.m
├── OAuth2Token.h
├── OAuth2Token.m
├── PivotalTrackerAccount.h
├── PivotalTrackerAccount.m
├── Popover
│ ├── Popover.css
│ └── Popover.html
├── PreferencesController.h
├── PreferencesController.m
├── Prefs.h
├── RSSAtomAccount.h
├── RSSAtomAccount.m
├── Reachability.h
├── Reachability.m
├── RegexKitLite.h
├── RegexKitLite.m
├── ScholicaAccount.h
├── ScholicaAccount.m
├── StatusItemView.h
├── StatusItemView.m
├── TrelloAccount.h
├── TrelloAccount.m
├── UserVoiceAccount.h
├── UserVoiceAccount.m
├── ZendeskAccount.h
├── ZendeskAccount.m
├── en.lproj
│ ├── App.xib
│ ├── Credits.rtf
│ ├── InfoPlist.strings
│ ├── PreferencesController.xib
│ └── PreferencesControllerBackup.xib
└── main.m
├── Frameworks
├── Growl.framework
│ ├── Growl
│ ├── Headers
│ ├── Resources
│ └── Versions
│ │ ├── A
│ │ ├── Growl
│ │ ├── Headers
│ │ │ ├── Growl.h
│ │ │ ├── GrowlApplicationBridge.h
│ │ │ └── GrowlDefines.h
│ │ ├── Resources
│ │ │ └── Info.plist
│ │ └── _CodeSignature
│ │ │ └── CodeResources
│ │ └── Current
├── ShortcutRecorder.framework
│ ├── Headers
│ ├── Resources
│ ├── ShortcutRecorder
│ └── Versions
│ │ ├── A
│ │ ├── Headers
│ │ │ ├── SRCommon.h
│ │ │ ├── SRKeyCodeTransformer.h
│ │ │ ├── SRRecorderCell.h
│ │ │ ├── SRRecorderControl.h
│ │ │ ├── SRValidator.h
│ │ │ ├── SR_LeopardView.h
│ │ │ └── ShortcutRecorder.h
│ │ ├── Resources
│ │ │ └── Info.plist
│ │ ├── ShortcutRecorder
│ │ └── _CodeSignature
│ │ │ └── CodeResources
│ │ └── Current
└── Sparkle.framework
│ ├── Headers
│ ├── Resources
│ ├── Sparkle
│ └── Versions
│ ├── A
│ ├── Headers
│ │ ├── SUAppcast.h
│ │ ├── SUAppcastItem.h
│ │ ├── SUUpdater.h
│ │ ├── SUVersionComparisonProtocol.h
│ │ └── Sparkle.h
│ ├── Resources
│ │ ├── Info.plist
│ │ ├── License.txt
│ │ ├── SUModelTranslation.plist
│ │ ├── SUStatus.nib
│ │ │ ├── classes.nib
│ │ │ ├── info.nib
│ │ │ └── keyedobjects.nib
│ │ ├── de.lproj
│ │ │ ├── SUAutomaticUpdateAlert.nib
│ │ │ │ ├── classes.nib
│ │ │ │ ├── info.nib
│ │ │ │ └── keyedobjects.nib
│ │ │ ├── SUUpdateAlert.nib
│ │ │ │ ├── classes.nib
│ │ │ │ ├── info.nib
│ │ │ │ └── keyedobjects.nib
│ │ │ ├── SUUpdatePermissionPrompt.nib
│ │ │ │ ├── classes.nib
│ │ │ │ ├── info.nib
│ │ │ │ └── keyedobjects.nib
│ │ │ └── Sparkle.strings
│ │ ├── en.lproj
│ │ │ ├── SUAutomaticUpdateAlert.nib
│ │ │ │ ├── classes.nib
│ │ │ │ ├── info.nib
│ │ │ │ └── keyedobjects.nib
│ │ │ ├── SUUpdateAlert.nib
│ │ │ │ ├── classes.nib
│ │ │ │ ├── info.nib
│ │ │ │ └── keyedobjects.nib
│ │ │ ├── SUUpdatePermissionPrompt.nib
│ │ │ │ ├── classes.nib
│ │ │ │ ├── info.nib
│ │ │ │ └── keyedobjects.nib
│ │ │ └── Sparkle.strings
│ │ ├── es.lproj
│ │ │ ├── SUAutomaticUpdateAlert.nib
│ │ │ │ ├── classes.nib
│ │ │ │ ├── info.nib
│ │ │ │ └── keyedobjects.nib
│ │ │ ├── SUUpdateAlert.nib
│ │ │ │ ├── classes.nib
│ │ │ │ ├── info.nib
│ │ │ │ └── keyedobjects.nib
│ │ │ ├── SUUpdatePermissionPrompt.nib
│ │ │ │ ├── classes.nib
│ │ │ │ ├── info.nib
│ │ │ │ └── keyedobjects.nib
│ │ │ └── Sparkle.strings
│ │ ├── fr.lproj
│ │ │ ├── SUAutomaticUpdateAlert.nib
│ │ │ │ ├── classes.nib
│ │ │ │ ├── info.nib
│ │ │ │ └── keyedobjects.nib
│ │ │ ├── SUUpdateAlert.nib
│ │ │ │ ├── classes.nib
│ │ │ │ ├── info.nib
│ │ │ │ └── keyedobjects.nib
│ │ │ ├── SUUpdatePermissionPrompt.nib
│ │ │ │ ├── classes.nib
│ │ │ │ ├── info.nib
│ │ │ │ └── keyedobjects.nib
│ │ │ ├── Sparkle.strings
│ │ │ └── fr.lproj
│ │ ├── fr_CA.lproj
│ │ ├── it.lproj
│ │ │ ├── SUAutomaticUpdateAlert.nib
│ │ │ │ ├── classes.nib
│ │ │ │ ├── info.nib
│ │ │ │ └── keyedobjects.nib
│ │ │ ├── SUUpdateAlert.nib
│ │ │ │ ├── classes.nib
│ │ │ │ ├── info.nib
│ │ │ │ └── keyedobjects.nib
│ │ │ ├── SUUpdatePermissionPrompt.nib
│ │ │ │ ├── classes.nib
│ │ │ │ ├── info.nib
│ │ │ │ └── keyedobjects.nib
│ │ │ └── Sparkle.strings
│ │ ├── nl.lproj
│ │ │ ├── SUAutomaticUpdateAlert.nib
│ │ │ │ ├── classes.nib
│ │ │ │ ├── info.nib
│ │ │ │ └── keyedobjects.nib
│ │ │ ├── SUUpdateAlert.nib
│ │ │ │ ├── classes.nib
│ │ │ │ ├── info.nib
│ │ │ │ └── keyedobjects.nib
│ │ │ ├── SUUpdatePermissionPrompt.nib
│ │ │ │ ├── classes.nib
│ │ │ │ ├── info.nib
│ │ │ │ └── keyedobjects.nib
│ │ │ └── Sparkle.strings
│ │ ├── relaunch
│ │ ├── ru.lproj
│ │ │ ├── SUAutomaticUpdateAlert.nib
│ │ │ │ ├── classes.nib
│ │ │ │ ├── info.nib
│ │ │ │ └── keyedobjects.nib
│ │ │ ├── SUUpdateAlert.nib
│ │ │ │ ├── classes.nib
│ │ │ │ ├── info.nib
│ │ │ │ └── keyedobjects.nib
│ │ │ ├── SUUpdatePermissionPrompt.nib
│ │ │ │ ├── classes.nib
│ │ │ │ ├── info.nib
│ │ │ │ └── keyedobjects.nib
│ │ │ └── Sparkle.strings
│ │ └── sv.lproj
│ │ │ ├── SUAutomaticUpdateAlert.nib
│ │ │ ├── classes.nib
│ │ │ ├── info.nib
│ │ │ └── keyedobjects.nib
│ │ │ ├── SUUpdateAlert.nib
│ │ │ ├── classes.nib
│ │ │ ├── info.nib
│ │ │ └── keyedobjects.nib
│ │ │ ├── SUUpdatePermissionPrompt.nib
│ │ │ ├── classes.nib
│ │ │ ├── info.nib
│ │ │ └── keyedobjects.nib
│ │ │ └── Sparkle.strings
│ └── Sparkle
│ └── Current
├── LICENSE
├── Libraries
├── DDHotKey
│ ├── DDHotKey-Info.plist
│ ├── DDHotKey.xcodeproj
│ │ └── project.pbxproj
│ ├── DDHotKeyAppDelegate.h
│ ├── DDHotKeyAppDelegate.m
│ ├── DDHotKeyCenter.h
│ ├── DDHotKeyCenter.m
│ ├── DDHotKey_Prefix.pch
│ ├── English.lproj
│ │ ├── InfoPlist.strings
│ │ └── MainMenu.xib
│ ├── README.markdown
│ └── main.m
├── Hpple
│ ├── TFHpple.h
│ ├── TFHpple.m
│ ├── TFHppleElement.h
│ ├── TFHppleElement.m
│ ├── XPathQuery.h
│ └── XPathQuery.m
├── JSONKit
│ ├── CHANGELOG.md
│ └── README.md
├── Lumberjack
│ ├── DDASLLogger.h
│ ├── DDASLLogger.m
│ ├── DDFileLogger.h
│ ├── DDFileLogger.m
│ ├── DDLog.h
│ ├── DDLog.m
│ ├── DDTTYLogger.h
│ └── DDTTYLogger.m
├── SMWebRequest
│ ├── README.md
│ ├── SMWebRequest.h
│ └── SMWebRequest.m
├── SMXMLDocument
│ ├── README.md
│ ├── SMXMLDocument.h
│ └── SMXMLDocument.m
└── ShortcutRecorder
│ ├── README.md
│ └── Shortcutrecorder Modified.zip
├── README.md
├── Website
├── app.yaml
├── appcast.py
├── css
│ ├── bootstrap.less
│ ├── normalize.css
│ ├── style.css
│ └── style.less
├── img
│ ├── app-icon.png
│ ├── app-menu-selection.png
│ ├── app-menu.png
│ ├── app-popover-image.jpg
│ ├── app-popover-image.png
│ ├── app-popover.png
│ ├── arrow-1.png
│ ├── arrow-2.png
│ ├── arrow-down.png
│ ├── bg-tile.jpg
│ ├── bg-tile_gradient.jpg
│ ├── buy-coming_soon.png
│ ├── buy-sale.png
│ ├── buy.png
│ ├── checkmark.png
│ ├── desktop-bg.jpg
│ ├── desktop-menu_bar.png
│ ├── download.png
│ ├── feed.png
│ ├── footer-life_buoy.png
│ ├── footer-twitter.png
│ ├── header-bg-tile.png
│ ├── icon-256.png
│ ├── icon-284.png
│ ├── line-1px.png
│ ├── line-gradient_horiz.png
│ ├── line-gradient_vert_down.png
│ ├── line-gradient_vert_up.png
│ ├── rss.png
│ ├── screenshot-1.jpg
│ ├── screenshot-1_sm.png
│ ├── screenshot-2.jpg
│ ├── screenshot-2_sm.png
│ ├── screenshot-3.jpg
│ ├── screenshot-3_sm.png
│ ├── service-basecamp.png
│ ├── service-beanstalk.png
│ ├── service-dribbble.png
│ ├── service-dropmark.png
│ ├── service-github.png
│ ├── service-highrise.png
│ ├── service-pivotaltracker.png
│ ├── service-trello.png
│ ├── service-uservoice.png
│ ├── service-zendesk.png
│ ├── star.png
│ ├── wallpaper-macbook_air.png
│ ├── wallpaper-option-1.jpg
│ ├── wallpaper-option-2.jpg
│ └── zoom
│ │ ├── closebox.png
│ │ ├── spacer.gif
│ │ ├── zoom-caption-fill.png
│ │ ├── zoom-caption-l.png
│ │ ├── zoom-caption-r.png
│ │ ├── zoom-shadow1.png
│ │ ├── zoom-shadow2.png
│ │ ├── zoom-shadow3.png
│ │ ├── zoom-shadow4.png
│ │ ├── zoom-shadow5.png
│ │ ├── zoom-shadow6.png
│ │ ├── zoom-shadow7.png
│ │ ├── zoom-shadow8.png
│ │ ├── zoom-spin-1.png
│ │ ├── zoom-spin-10.png
│ │ ├── zoom-spin-11.png
│ │ ├── zoom-spin-12.png
│ │ ├── zoom-spin-2.png
│ │ ├── zoom-spin-3.png
│ │ ├── zoom-spin-4.png
│ │ ├── zoom-spin-5.png
│ │ ├── zoom-spin-6.png
│ │ ├── zoom-spin-7.png
│ │ ├── zoom-spin-8.png
│ │ └── zoom-spin-9.png
├── index.html
├── index.yaml
└── js
│ ├── FancyZoom.js
│ ├── FancyZoomHTML.js
│ ├── jquery.activity-indicator-1.0.0.js
│ ├── jquery.activity-indicator-1.0.1.js
│ ├── jquery.animate-enhanced.min.js
│ └── less-1.1.5.min.js
├── appcast.xml
└── deploy
/.gitignore:
--------------------------------------------------------------------------------
1 | # Mac
2 | .DS_Store
3 |
4 | # Xcode
5 | build/
6 | *.mode*
7 | *.pbxuser
8 | *~.nib
9 | xcuserdata
10 | *.xccheckout
11 |
12 | # Python
13 | *.pyc
--------------------------------------------------------------------------------
/.gitmodules:
--------------------------------------------------------------------------------
1 | [submodule "XMLDocument"]
2 | path = XMLDocument
3 | url = git@github.com:nfarina/xmldocument.git
4 | [submodule "WebRequest"]
5 | path = WebRequest
6 | url = git@github.com:nfarina/webrequest.git
7 |
--------------------------------------------------------------------------------
/Assets/Screenshot.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/nfarina/feeds/c6ad6c68f53eca08ced40ed1e4b3d2d6ab99bea6/Assets/Screenshot.png
--------------------------------------------------------------------------------
/Assets/Zootool Icons.sketch/Data:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/nfarina/feeds/c6ad6c68f53eca08ced40ed1e4b3d2d6ab99bea6/Assets/Zootool Icons.sketch/Data
--------------------------------------------------------------------------------
/Assets/Zootool Icons.sketch/Images/2.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/nfarina/feeds/c6ad6c68f53eca08ced40ed1e4b3d2d6ab99bea6/Assets/Zootool Icons.sketch/Images/2.png
--------------------------------------------------------------------------------
/Assets/Zootool Icons.sketch/Images/3.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/nfarina/feeds/c6ad6c68f53eca08ced40ed1e4b3d2d6ab99bea6/Assets/Zootool Icons.sketch/Images/3.png
--------------------------------------------------------------------------------
/Assets/Zootool Icons.sketch/Images/4.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/nfarina/feeds/c6ad6c68f53eca08ced40ed1e4b3d2d6ab99bea6/Assets/Zootool Icons.sketch/Images/4.png
--------------------------------------------------------------------------------
/Assets/Zootool Icons.sketch/QuickLook/Preview.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/nfarina/feeds/c6ad6c68f53eca08ced40ed1e4b3d2d6ab99bea6/Assets/Zootool Icons.sketch/QuickLook/Preview.png
--------------------------------------------------------------------------------
/Assets/Zootool Icons.sketch/QuickLook/Thumbnail.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/nfarina/feeds/c6ad6c68f53eca08ced40ed1e4b3d2d6ab99bea6/Assets/Zootool Icons.sketch/QuickLook/Thumbnail.png
--------------------------------------------------------------------------------
/Assets/Zootool Icons.sketch/fonts:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/nfarina/feeds/c6ad6c68f53eca08ced40ed1e4b3d2d6ab99bea6/Assets/Zootool Icons.sketch/fonts
--------------------------------------------------------------------------------
/Assets/Zootool Icons.sketch/version:
--------------------------------------------------------------------------------
1 | 10
--------------------------------------------------------------------------------
/Feeds.xcodeproj/project.xcworkspace/contents.xcworkspacedata:
--------------------------------------------------------------------------------
1 |
2 |
4 |
6 |
7 |
8 |
--------------------------------------------------------------------------------
/Feeds/AccountCell.h:
--------------------------------------------------------------------------------
1 |
2 | @interface AccountCell : NSTextFieldCell
3 | @end
4 |
--------------------------------------------------------------------------------
/Feeds/AppDelegate.h:
--------------------------------------------------------------------------------
1 |
2 | @interface AppDelegate : NSObject
3 | @end
4 |
--------------------------------------------------------------------------------
/Feeds/BasecampAccount.h:
--------------------------------------------------------------------------------
1 | #import "Account.h"
2 |
3 | @interface BasecampAccount : Account
4 | @end
5 |
--------------------------------------------------------------------------------
/Feeds/BasecampAccount.m:
--------------------------------------------------------------------------------
1 | #import "BasecampAccount.h"
2 |
3 | @implementation BasecampAccount
4 |
5 | + (void)load { [Account registerClass:self]; }
6 | + (BOOL)requiresDomain { return YES; }
7 | + (BOOL)requiresUsername { return YES; }
8 | + (BOOL)requiresPassword { return YES; }
9 | + (NSString *)friendlyAccountName { return @"Basecamp Classic"; }
10 | + (NSString *)shortAccountName { return @"Basecamp"; }
11 | + (NSString *)domainSuffix { return @".basecamphq.com"; }
12 |
13 | - (void)validateWithPassword:(NSString *)password {
14 |
15 | NSString *URL = [NSString stringWithFormat:@"https://%@.basecamphq.com/me.xml", self.domain];
16 |
17 | self.request = [SMWebRequest requestWithURLRequest:[NSURLRequest requestWithURLString:URL username:self.username password:password] delegate:nil context:NULL];
18 | [self.request addTarget:self action:@selector(meRequestComplete:) forRequestEvents:SMWebRequestEventComplete];
19 | [self.request addTarget:self action:@selector(meRequestError:) forRequestEvents:SMWebRequestEventError];
20 | [self.request start];
21 | }
22 |
23 | - (void)meRequestComplete:(NSData *)data {
24 |
25 | SMXMLDocument *document = [SMXMLDocument documentWithData:data error:NULL];
26 |
27 | NSString *firstName = [document.root valueWithPath:@"first-name"];
28 | NSString *lastName = [document.root valueWithPath:@"last-name"];
29 | NSString *token = [document.root valueWithPath:@"token"];
30 |
31 | NSString *mainFeedString = [NSString stringWithFormat:@"https://%@:%@@%@.basecamphq.com/feed/recent_items_rss", token, token, self.domain];
32 | Feed *mainFeed = [Feed feedWithURLString:mainFeedString title:@"Latest Activity" account:self];
33 |
34 | if ([firstName length] > 0 && [lastName length] > 0)
35 | mainFeed.author = [NSString stringWithFormat:@"%@ %@.", firstName, [lastName substringToIndex:1]];
36 |
37 | self.feeds = @[mainFeed];
38 |
39 | [self.delegate account:self validationDidCompleteWithNewPassword:nil];
40 | }
41 |
42 | - (void)meRequestError:(NSError *)error {
43 | if (error.code == 404)
44 | [self.delegate account:self validationDidFailWithMessage:@"Could not log in to the given Basecamp account. Please check your domain, username, and password." field:0];
45 | else
46 | [self.delegate account:self validationDidFailWithMessage:error.localizedDescription field:AccountFailingFieldUnknown];
47 | }
48 |
49 | @end
50 |
--------------------------------------------------------------------------------
/Feeds/BasecampNextAccount.h:
--------------------------------------------------------------------------------
1 | #import "Account.h"
2 |
3 | @interface BasecampNextAccount : Account
4 | @end
5 |
--------------------------------------------------------------------------------
/Feeds/BeanstalkAccount.h:
--------------------------------------------------------------------------------
1 | #import "Account.h"
2 |
3 | @interface BeanstalkAccount : Account
4 | @end
5 |
--------------------------------------------------------------------------------
/Feeds/BitbucketAccount.h:
--------------------------------------------------------------------------------
1 | #import "Account.h"
2 |
3 | @interface BitbucketAccount : Account
4 | @end
5 |
--------------------------------------------------------------------------------
/Feeds/CG+Geometry.h:
--------------------------------------------------------------------------------
1 |
2 | enum {
3 | // Alignment of the image within the bounding rect (default is centered in both directions)
4 | DrawInsideAlignLeft = 1 << 0,
5 | DrawInsideAlignRight = 1 << 1,
6 | DrawInsideAlignTop = 1 << 2,
7 | DrawInsideAlignBottom = 1 << 3,
8 | // Set this flag to allow stretching the image to larger than its natural size (may induce ugly artifacts)
9 | DrawInsideAllowStretch = 1 << 4,
10 | // Set this flag to allow cropping the image in either direction. This will cause the image to be sized based on
11 | // its smaller side; for instance, you could set this flag to draw Flickr-style "square thumbnails" for non-square images.
12 | DrawInsideUniformFill = 1 << 5,
13 | // Set this flag to prevent automatically snapping the resulting image rect to whole pixels.
14 | DrawInsideNoPixelSnap = 1 << 6
15 | };
16 | typedef NSUInteger DrawInsideOptions;
17 |
18 | // Resizes the given CGSize such that one of its sides equals the corresponding side in containingSize. If
19 | // uniformFill is true, then the resulting size is guaranteed to be equal to or larger the targetSize, otherwise
20 | // the resulting size is guaranteed to be smaller.
21 | extern CGSize CGSizeResize(CGSize size, CGSize targetSize, bool uniformFill);
22 |
23 | // Returns a rect with the given content size, positioned in the center of the given rect (which could be smaller)
24 | extern CGRect CGRectCenteredInside(CGRect rect, CGSize contentSize);
25 |
26 | // Positions the box of the given size inside the given rect with additional options.
27 | extern CGRect CGRectPositionedInside(CGRect rect, CGSize contentSize, DrawInsideOptions options);
28 |
29 | // Returns a rect at 0,0 with the given CGSize.
30 | CG_INLINE CGRect
31 | CGRectMakeWithSize(CGSize size) {
32 | CGRect rect;
33 | rect.origin.x = 0; rect.origin.y = 0;
34 | rect.size = size;
35 | return rect;
36 | }
37 |
38 | // Returns a point with its values rounded to the nearest integer.
39 | extern CGPoint CGPointRounded(CGPoint point);
40 |
41 | // Returns a size with its values rounded to the nearest integer.
42 | extern CGSize CGSizeRounded(CGSize size);
43 |
44 | // Returns a rect with its values rounded to the nearest integer.
45 | extern CGRect CGRectRounded(CGRect rect);
46 |
47 | extern bool CGSizeSmallerThanSize(CGSize size1, CGSize size2);
48 | extern bool CGSizeLargerThanSize(CGSize size1, CGSize size2);
--------------------------------------------------------------------------------
/Feeds/CreateAccountController.h:
--------------------------------------------------------------------------------
1 | #import "Account.h"
2 |
3 | @protocol CreateAccountControllerDelegate;
4 |
5 | @interface CreateAccountController : NSWindowController
6 |
7 | - (id)initWithDelegate:(id)delegate;
8 |
9 | @end
10 |
11 |
12 | @protocol CreateAccountControllerDelegate
13 |
14 | - (void)createAccountControllerDidCancel:(CreateAccountController *)controller;
15 | - (void)createAccountController:(CreateAccountController *)controller didCompleteWithAccount:(Account *)account;
16 |
17 | @end
18 |
--------------------------------------------------------------------------------
/Feeds/DribbbleAccount.h:
--------------------------------------------------------------------------------
1 | #import "Account.h"
2 |
3 | @interface DribbbleAccount : Account
4 | @end
5 |
--------------------------------------------------------------------------------
/Feeds/DribbbleAccount.m:
--------------------------------------------------------------------------------
1 | #import "DribbbleAccount.h"
2 |
3 | @implementation DribbbleAccount
4 |
5 | + (void)load { [Account registerClass:self]; }
6 | + (BOOL)requiresUsername { return YES; }
7 | + (NSTimeInterval)defaultRefreshInterval { return 15*60; } // 15 minutes to respect dribbble's request.
8 |
9 | - (void)validateWithPassword:(NSString *)password {
10 |
11 | NSString *URL = [NSString stringWithFormat:@"http://dribbble.com/%@/shots/following.rss", self.username];
12 |
13 | self.request = [SMWebRequest requestWithURL:[NSURL URLWithString:URL] delegate:nil context:NULL];
14 | [self.request addTarget:self action:@selector(meRequestComplete:) forRequestEvents:SMWebRequestEventComplete];
15 | [self.request addTarget:self action:@selector(meRequestError:) forRequestEvents:SMWebRequestEventError];
16 | [self.request start];
17 | }
18 |
19 | - (void)meRequestComplete:(NSData *)data {
20 |
21 | self.feeds = @[[Feed feedWithURLString:[NSString stringWithFormat:@"http://dribbble.com/%@/activity/incoming.rss", self.username] title:@"My Activity" account:self],
22 | [Feed feedWithURLString:[NSString stringWithFormat:@"http://dribbble.com/%@/shots/following.rss", self.username] title:@"Following Activity" account:self]];
23 |
24 | [self.delegate account:self validationDidCompleteWithNewPassword:nil];
25 | }
26 |
27 | - (void)meRequestError:(NSError *)error {
28 | if (error.code == 404)
29 | [self.delegate account:self validationDidFailWithMessage:@"Could not find the given Dribbble username." field:AccountFailingFieldUsername];
30 | else
31 | [self.delegate account:self validationDidFailWithMessage:error.localizedDescription field:AccountFailingFieldUnknown];
32 | }
33 |
34 | @end
35 |
--------------------------------------------------------------------------------
/Feeds/DropmarkAccount.h:
--------------------------------------------------------------------------------
1 | #import "Account.h"
2 |
3 | @interface DropmarkAccount : Account
4 | @end
5 |
--------------------------------------------------------------------------------
/Feeds/DropmarkAccount.m:
--------------------------------------------------------------------------------
1 | #import "DropmarkAccount.h"
2 |
3 | @implementation DropmarkAccount
4 |
5 | + (void)load { [Account registerClass:self]; }
6 | + (BOOL)requiresUsername { return YES; }
7 | + (BOOL)requiresPassword { return YES; }
8 | + (NSString *)usernameLabel { return @"Email Address:"; }
9 |
10 | - (void)validateWithPassword:(NSString *)password {
11 |
12 | if (![self.username isValidEmailAddress]) {
13 | [self.delegate account:self validationDidFailWithMessage:@"Please enter a valid email address." field:AccountFailingFieldUsername];
14 | return;
15 | }
16 |
17 | NSString *URL = @"https://app.dropmark.com/activity.rss";
18 |
19 | self.request = [SMWebRequest requestWithURLRequest:[NSURLRequest requestWithURLString:URL username:self.username password:password] delegate:nil context:password];
20 | [self.request addTarget:self action:@selector(rssRequestComplete:password:) forRequestEvents:SMWebRequestEventComplete];
21 | [self.request addTarget:self action:@selector(rssRequestError:) forRequestEvents:SMWebRequestEventError];
22 | [self.request start];
23 | }
24 |
25 | - (void)rssRequestComplete:(NSData *)data password:(NSString *)password {
26 |
27 | SMXMLDocument *document = [SMXMLDocument documentWithData:data error:NULL];
28 | NSString *title = [document.root valueWithPath:@"channel.title"];
29 | NSString *author = [title stringByReplacingOccurrencesOfString:@"Dropmark activity for " withString:@""];
30 |
31 | NSString *URL = @"https://app.dropmark.com/activity.rss";
32 |
33 | Feed *feed = [Feed feedWithURLString:URL title:@"All Activity" author:author account:self];
34 | feed.requiresBasicAuth = YES;
35 | self.feeds = @[feed];
36 |
37 | [self.delegate account:self validationDidCompleteWithNewPassword:password];
38 | }
39 |
40 | - (void)rssRequestError:(NSError *)error {
41 | if (error.code == 401)
42 | [self.delegate account:self validationDidFailWithMessage:@"Could not log in to the given Dropmark account. Please check your email address and password." field:0];
43 | else
44 | [self.delegate account:self validationDidFailWithMessage:error.localizedDescription field:AccountFailingFieldUnknown];
45 | }
46 |
47 | @end
48 |
--------------------------------------------------------------------------------
/Feeds/ErrorReport.txt:
--------------------------------------------------------------------------------
1 |
2 | Please describe what you were doing when the problem happened:
3 |
4 |
5 |
6 |
7 | -------- Diagnostic Data Follows --------
8 |
9 |
--------------------------------------------------------------------------------
/Feeds/Feed.h:
--------------------------------------------------------------------------------
1 |
2 | @class Account;
3 |
4 | extern NSString *kFeedUpdatedNotification;
5 |
6 | NSDate *AutoFormatDate(NSString *dateString);
7 |
8 | @interface Feed : NSObject
9 |
10 | // stored properties
11 | @property (nonatomic, strong) NSURL *URL;
12 | @property (nonatomic, copy) NSString *title, *author;
13 | @property (nonatomic, copy) NSDictionary *requestHeaders;
14 | @property (nonatomic, assign) BOOL disabled, requiresBasicAuth, requiresOAuth2Token, incremental;
15 |
16 | // used only at runtime
17 | @property (nonatomic, copy) NSArray *items;
18 | @property (nonatomic, unsafe_unretained) Account *account;
19 |
20 | + (Feed *)feedWithURLString:(NSString *)URLString title:(NSString *)title account:(Account *)account;
21 | + (Feed *)feedWithURLString:(NSString *)URLString title:(NSString *)title author:(NSString *)author account:(Account *)account;
22 |
23 | + (Feed *)feedWithDictionary:(NSDictionary *)dict account:(Account *)account;
24 | - (NSDictionary *)dictionaryRepresentation;
25 |
26 | + (NSArray *)feedItemsWithData:(NSData *)data discoveredTitle:(NSString **)title error:(NSError **)error;
27 |
28 | - (void)refresh;
29 | - (void)refreshWithURL:(NSURL *)refreshURL; // some accounts (like basecamp next) append things like "since=" to the "base" URL
30 |
31 | @end
32 |
33 | @interface FeedItem : NSObject
34 |
35 | @property (nonatomic, copy) NSString *identifier, *title, *author, *authorIdentifier, *project, *content, *rawDate;
36 | @property (nonatomic, strong) NSURL *link, *comments;
37 | @property (nonatomic, strong) NSDate *published, *updated;
38 | @property (nonatomic, assign) BOOL notified, viewed, authoredByMe;
39 | @property (nonatomic, unsafe_unretained) Feed *feed;
40 |
41 | @property (nonatomic, readonly) NSString *authorAndTitle;
42 |
43 | // creates a new FeedItem by parsing an XML element
44 | + (FeedItem *)itemWithRSSItemElement:(SMXMLElement *)element;
45 | + (FeedItem *)itemWithATOMEntryElement:(SMXMLElement *)element;
46 |
47 | - (NSComparisonResult)compareItemByPublishedDate:(FeedItem *)item;
48 |
49 | - (NSAttributedString *)attributedStringHighlighted:(BOOL)highlighted;
50 |
51 | @end
52 |
--------------------------------------------------------------------------------
/Feeds/Feeds-Info.plist:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | CFBundleDevelopmentRegion
6 | en
7 | CFBundleExecutable
8 | ${EXECUTABLE_NAME}
9 | CFBundleIconFile
10 | ApplicationIcon.icns
11 | CFBundleIdentifier
12 | com.feedsapp.${PRODUCT_NAME:rfc1034identifier}
13 | CFBundleInfoDictionaryVersion
14 | 6.0
15 | CFBundleName
16 | ${PRODUCT_NAME}
17 | CFBundlePackageType
18 | APPL
19 | CFBundleSignature
20 | ????
21 | CFBundleURLTypes
22 |
23 |
24 | CFBundleURLSchemes
25 |
26 | feedsapp
27 |
28 |
29 |
30 | CFBundleVersion
31 | 2.1.2
32 | LSApplicationCategoryType
33 | public.app-category.productivity
34 | LSMinimumSystemVersion
35 | ${MACOSX_DEPLOYMENT_TARGET}
36 | LSUIElement
37 |
38 | NSAppTransportSecurity
39 |
40 | NSAllowsArbitraryLoads
41 |
42 |
43 | NSMainNibFile
44 | App
45 | NSPrincipalClass
46 | NSApplication
47 | SUFeedURL
48 | https://feedswww.appspot.com/appcast.xml
49 |
50 |
51 |
--------------------------------------------------------------------------------
/Feeds/Feeds-Prefix.pch:
--------------------------------------------------------------------------------
1 |
2 | #ifdef __OBJC__
3 | #import
4 | #import
5 | #import
6 | #import
7 | #import
8 | #import "DDLog.h"
9 | #import "DDASLLogger.h"
10 | #import "DDTTYLogger.h"
11 | #import "DDFileLogger.h"
12 | #import "DDHotKeyCenter.h"
13 | #import "NSDate+InternetDateTime.h"
14 | #import "SMWebRequest.h"
15 | #import "SMXMLDocument.h"
16 | #import "NSArray+Linqish.h"
17 | #import "NSString+EntityDecoding.h"
18 | #import "NSString+Base64.h"
19 | #import "NSString+English.h"
20 | #import "NSURLRequest+Authorization.h"
21 | #import "NSView+PrintHierarchy.h"
22 | #import "NSString+Truncated.h"
23 | #import "Reachability.h"
24 | #import "RegexKitLite.h"
25 | #import "CG+Geometry.h"
26 | #import "TFHpple.h"
27 | #import "ISO8601DateFormatter.h"
28 | #import "NSDate+TimeAgo.h"
29 | #import "NSString+URLArgument.h"
30 | #import "NSAlert+Foreground.h"
31 | #import "NSString+EmailValidation.h"
32 | #import "NSData+ObjectFromJSONData.h"
33 | #import "NSString+ObjectFromJSONString.h"
34 | #import "NSDictionary+JSONString.h"
35 | #endif
36 |
37 | #include "Prefs.h"
38 |
39 | // Compatibility stuff
40 | #define HAS_NOTIFICATION_CENTER (NSClassFromString(@"NSUserNotificationCenter") != nil)
41 |
42 | extern const int ddLogLevel;
--------------------------------------------------------------------------------
/Feeds/FreshdeskAccount.h:
--------------------------------------------------------------------------------
1 | //
2 | // FreshdeskAccount.h
3 | // Feeds
4 | //
5 | // Created by Tom Schoffelen on 17-10-13.
6 | //
7 |
8 | #import "Account.h"
9 |
10 | @interface FreshdeskAccount : Account
11 | @property (nonatomic, assign) NSString *passw;
12 | @end
13 |
--------------------------------------------------------------------------------
/Feeds/GithubAccount.h:
--------------------------------------------------------------------------------
1 | #import "Account.h"
2 |
3 | @interface GithubAccount : Account
4 | @end
5 |
--------------------------------------------------------------------------------
/Feeds/Graphics/Accounts.icns:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/nfarina/feeds/c6ad6c68f53eca08ced40ed1e4b3d2d6ab99bea6/Feeds/Graphics/Accounts.icns
--------------------------------------------------------------------------------
/Feeds/Graphics/AlertCautionIcon.icns:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/nfarina/feeds/c6ad6c68f53eca08ced40ed1e4b3d2d6ab99bea6/Feeds/Graphics/AlertCautionIcon.icns
--------------------------------------------------------------------------------
/Feeds/Graphics/ApplicationIcon.icns:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/nfarina/feeds/c6ad6c68f53eca08ced40ed1e4b3d2d6ab99bea6/Feeds/Graphics/ApplicationIcon.icns
--------------------------------------------------------------------------------
/Feeds/Graphics/Basecamp.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/nfarina/feeds/c6ad6c68f53eca08ced40ed1e4b3d2d6ab99bea6/Feeds/Graphics/Basecamp.png
--------------------------------------------------------------------------------
/Feeds/Graphics/Basecamp@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/nfarina/feeds/c6ad6c68f53eca08ced40ed1e4b3d2d6ab99bea6/Feeds/Graphics/Basecamp@2x.png
--------------------------------------------------------------------------------
/Feeds/Graphics/BasecampAccount.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/nfarina/feeds/c6ad6c68f53eca08ced40ed1e4b3d2d6ab99bea6/Feeds/Graphics/BasecampAccount.png
--------------------------------------------------------------------------------
/Feeds/Graphics/BasecampAccount@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/nfarina/feeds/c6ad6c68f53eca08ced40ed1e4b3d2d6ab99bea6/Feeds/Graphics/BasecampAccount@2x.png
--------------------------------------------------------------------------------
/Feeds/Graphics/BasecampNotify.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/nfarina/feeds/c6ad6c68f53eca08ced40ed1e4b3d2d6ab99bea6/Feeds/Graphics/BasecampNotify.png
--------------------------------------------------------------------------------
/Feeds/Graphics/BasecampNotify@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/nfarina/feeds/c6ad6c68f53eca08ced40ed1e4b3d2d6ab99bea6/Feeds/Graphics/BasecampNotify@2x.png
--------------------------------------------------------------------------------
/Feeds/Graphics/Beanstalk.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/nfarina/feeds/c6ad6c68f53eca08ced40ed1e4b3d2d6ab99bea6/Feeds/Graphics/Beanstalk.png
--------------------------------------------------------------------------------
/Feeds/Graphics/Beanstalk@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/nfarina/feeds/c6ad6c68f53eca08ced40ed1e4b3d2d6ab99bea6/Feeds/Graphics/Beanstalk@2x.png
--------------------------------------------------------------------------------
/Feeds/Graphics/BeanstalkAccount.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/nfarina/feeds/c6ad6c68f53eca08ced40ed1e4b3d2d6ab99bea6/Feeds/Graphics/BeanstalkAccount.png
--------------------------------------------------------------------------------
/Feeds/Graphics/BeanstalkAccount@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/nfarina/feeds/c6ad6c68f53eca08ced40ed1e4b3d2d6ab99bea6/Feeds/Graphics/BeanstalkAccount@2x.png
--------------------------------------------------------------------------------
/Feeds/Graphics/BeanstalkNotify.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/nfarina/feeds/c6ad6c68f53eca08ced40ed1e4b3d2d6ab99bea6/Feeds/Graphics/BeanstalkNotify.png
--------------------------------------------------------------------------------
/Feeds/Graphics/BeanstalkNotify@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/nfarina/feeds/c6ad6c68f53eca08ced40ed1e4b3d2d6ab99bea6/Feeds/Graphics/BeanstalkNotify@2x.png
--------------------------------------------------------------------------------
/Feeds/Graphics/Bitbucket.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/nfarina/feeds/c6ad6c68f53eca08ced40ed1e4b3d2d6ab99bea6/Feeds/Graphics/Bitbucket.png
--------------------------------------------------------------------------------
/Feeds/Graphics/Bitbucket@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/nfarina/feeds/c6ad6c68f53eca08ced40ed1e4b3d2d6ab99bea6/Feeds/Graphics/Bitbucket@2x.png
--------------------------------------------------------------------------------
/Feeds/Graphics/BitbucketAccount.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/nfarina/feeds/c6ad6c68f53eca08ced40ed1e4b3d2d6ab99bea6/Feeds/Graphics/BitbucketAccount.png
--------------------------------------------------------------------------------
/Feeds/Graphics/BitbucketAccount@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/nfarina/feeds/c6ad6c68f53eca08ced40ed1e4b3d2d6ab99bea6/Feeds/Graphics/BitbucketAccount@2x.png
--------------------------------------------------------------------------------
/Feeds/Graphics/BitbucketNotify.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/nfarina/feeds/c6ad6c68f53eca08ced40ed1e4b3d2d6ab99bea6/Feeds/Graphics/BitbucketNotify.png
--------------------------------------------------------------------------------
/Feeds/Graphics/BitbucketNotify@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/nfarina/feeds/c6ad6c68f53eca08ced40ed1e4b3d2d6ab99bea6/Feeds/Graphics/BitbucketNotify@2x.png
--------------------------------------------------------------------------------
/Feeds/Graphics/Default.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/nfarina/feeds/c6ad6c68f53eca08ced40ed1e4b3d2d6ab99bea6/Feeds/Graphics/Default.png
--------------------------------------------------------------------------------
/Feeds/Graphics/Dribbble.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/nfarina/feeds/c6ad6c68f53eca08ced40ed1e4b3d2d6ab99bea6/Feeds/Graphics/Dribbble.png
--------------------------------------------------------------------------------
/Feeds/Graphics/Dribbble@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/nfarina/feeds/c6ad6c68f53eca08ced40ed1e4b3d2d6ab99bea6/Feeds/Graphics/Dribbble@2x.png
--------------------------------------------------------------------------------
/Feeds/Graphics/DribbbleAccount.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/nfarina/feeds/c6ad6c68f53eca08ced40ed1e4b3d2d6ab99bea6/Feeds/Graphics/DribbbleAccount.png
--------------------------------------------------------------------------------
/Feeds/Graphics/DribbbleAccount@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/nfarina/feeds/c6ad6c68f53eca08ced40ed1e4b3d2d6ab99bea6/Feeds/Graphics/DribbbleAccount@2x.png
--------------------------------------------------------------------------------
/Feeds/Graphics/DribbbleNotify.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/nfarina/feeds/c6ad6c68f53eca08ced40ed1e4b3d2d6ab99bea6/Feeds/Graphics/DribbbleNotify.png
--------------------------------------------------------------------------------
/Feeds/Graphics/DribbbleNotify@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/nfarina/feeds/c6ad6c68f53eca08ced40ed1e4b3d2d6ab99bea6/Feeds/Graphics/DribbbleNotify@2x.png
--------------------------------------------------------------------------------
/Feeds/Graphics/Dropmark.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/nfarina/feeds/c6ad6c68f53eca08ced40ed1e4b3d2d6ab99bea6/Feeds/Graphics/Dropmark.png
--------------------------------------------------------------------------------
/Feeds/Graphics/Dropmark@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/nfarina/feeds/c6ad6c68f53eca08ced40ed1e4b3d2d6ab99bea6/Feeds/Graphics/Dropmark@2x.png
--------------------------------------------------------------------------------
/Feeds/Graphics/DropmarkAccount.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/nfarina/feeds/c6ad6c68f53eca08ced40ed1e4b3d2d6ab99bea6/Feeds/Graphics/DropmarkAccount.png
--------------------------------------------------------------------------------
/Feeds/Graphics/DropmarkAccount@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/nfarina/feeds/c6ad6c68f53eca08ced40ed1e4b3d2d6ab99bea6/Feeds/Graphics/DropmarkAccount@2x.png
--------------------------------------------------------------------------------
/Feeds/Graphics/DropmarkNotify.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/nfarina/feeds/c6ad6c68f53eca08ced40ed1e4b3d2d6ab99bea6/Feeds/Graphics/DropmarkNotify.png
--------------------------------------------------------------------------------
/Feeds/Graphics/DropmarkNotify@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/nfarina/feeds/c6ad6c68f53eca08ced40ed1e4b3d2d6ab99bea6/Feeds/Graphics/DropmarkNotify@2x.png
--------------------------------------------------------------------------------
/Feeds/Graphics/Freshdesk.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/nfarina/feeds/c6ad6c68f53eca08ced40ed1e4b3d2d6ab99bea6/Feeds/Graphics/Freshdesk.png
--------------------------------------------------------------------------------
/Feeds/Graphics/Freshdesk@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/nfarina/feeds/c6ad6c68f53eca08ced40ed1e4b3d2d6ab99bea6/Feeds/Graphics/Freshdesk@2x.png
--------------------------------------------------------------------------------
/Feeds/Graphics/FreshdeskAccount.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/nfarina/feeds/c6ad6c68f53eca08ced40ed1e4b3d2d6ab99bea6/Feeds/Graphics/FreshdeskAccount.png
--------------------------------------------------------------------------------
/Feeds/Graphics/FreshdeskAccount@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/nfarina/feeds/c6ad6c68f53eca08ced40ed1e4b3d2d6ab99bea6/Feeds/Graphics/FreshdeskAccount@2x.png
--------------------------------------------------------------------------------
/Feeds/Graphics/FreshdeskNotify.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/nfarina/feeds/c6ad6c68f53eca08ced40ed1e4b3d2d6ab99bea6/Feeds/Graphics/FreshdeskNotify.png
--------------------------------------------------------------------------------
/Feeds/Graphics/FreshdeskNotify@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/nfarina/feeds/c6ad6c68f53eca08ced40ed1e4b3d2d6ab99bea6/Feeds/Graphics/FreshdeskNotify@2x.png
--------------------------------------------------------------------------------
/Feeds/Graphics/General.icns:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/nfarina/feeds/c6ad6c68f53eca08ced40ed1e4b3d2d6ab99bea6/Feeds/Graphics/General.icns
--------------------------------------------------------------------------------
/Feeds/Graphics/Github.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/nfarina/feeds/c6ad6c68f53eca08ced40ed1e4b3d2d6ab99bea6/Feeds/Graphics/Github.png
--------------------------------------------------------------------------------
/Feeds/Graphics/Github@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/nfarina/feeds/c6ad6c68f53eca08ced40ed1e4b3d2d6ab99bea6/Feeds/Graphics/Github@2x.png
--------------------------------------------------------------------------------
/Feeds/Graphics/GithubAccount.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/nfarina/feeds/c6ad6c68f53eca08ced40ed1e4b3d2d6ab99bea6/Feeds/Graphics/GithubAccount.png
--------------------------------------------------------------------------------
/Feeds/Graphics/GithubAccount@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/nfarina/feeds/c6ad6c68f53eca08ced40ed1e4b3d2d6ab99bea6/Feeds/Graphics/GithubAccount@2x.png
--------------------------------------------------------------------------------
/Feeds/Graphics/GithubNotify.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/nfarina/feeds/c6ad6c68f53eca08ced40ed1e4b3d2d6ab99bea6/Feeds/Graphics/GithubNotify.png
--------------------------------------------------------------------------------
/Feeds/Graphics/GithubNotify@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/nfarina/feeds/c6ad6c68f53eca08ced40ed1e4b3d2d6ab99bea6/Feeds/Graphics/GithubNotify@2x.png
--------------------------------------------------------------------------------
/Feeds/Graphics/Highrise.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/nfarina/feeds/c6ad6c68f53eca08ced40ed1e4b3d2d6ab99bea6/Feeds/Graphics/Highrise.png
--------------------------------------------------------------------------------
/Feeds/Graphics/Highrise@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/nfarina/feeds/c6ad6c68f53eca08ced40ed1e4b3d2d6ab99bea6/Feeds/Graphics/Highrise@2x.png
--------------------------------------------------------------------------------
/Feeds/Graphics/HighriseAccount.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/nfarina/feeds/c6ad6c68f53eca08ced40ed1e4b3d2d6ab99bea6/Feeds/Graphics/HighriseAccount.png
--------------------------------------------------------------------------------
/Feeds/Graphics/HighriseAccount@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/nfarina/feeds/c6ad6c68f53eca08ced40ed1e4b3d2d6ab99bea6/Feeds/Graphics/HighriseAccount@2x.png
--------------------------------------------------------------------------------
/Feeds/Graphics/HighriseNotify.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/nfarina/feeds/c6ad6c68f53eca08ced40ed1e4b3d2d6ab99bea6/Feeds/Graphics/HighriseNotify.png
--------------------------------------------------------------------------------
/Feeds/Graphics/HighriseNotify@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/nfarina/feeds/c6ad6c68f53eca08ced40ed1e4b3d2d6ab99bea6/Feeds/Graphics/HighriseNotify@2x.png
--------------------------------------------------------------------------------
/Feeds/Graphics/PivotalTracker.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/nfarina/feeds/c6ad6c68f53eca08ced40ed1e4b3d2d6ab99bea6/Feeds/Graphics/PivotalTracker.png
--------------------------------------------------------------------------------
/Feeds/Graphics/PivotalTracker@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/nfarina/feeds/c6ad6c68f53eca08ced40ed1e4b3d2d6ab99bea6/Feeds/Graphics/PivotalTracker@2x.png
--------------------------------------------------------------------------------
/Feeds/Graphics/PivotalTrackerAccount.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/nfarina/feeds/c6ad6c68f53eca08ced40ed1e4b3d2d6ab99bea6/Feeds/Graphics/PivotalTrackerAccount.png
--------------------------------------------------------------------------------
/Feeds/Graphics/PivotalTrackerAccount@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/nfarina/feeds/c6ad6c68f53eca08ced40ed1e4b3d2d6ab99bea6/Feeds/Graphics/PivotalTrackerAccount@2x.png
--------------------------------------------------------------------------------
/Feeds/Graphics/PivotalTrackerNotify.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/nfarina/feeds/c6ad6c68f53eca08ced40ed1e4b3d2d6ab99bea6/Feeds/Graphics/PivotalTrackerNotify.png
--------------------------------------------------------------------------------
/Feeds/Graphics/PivotalTrackerNotify@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/nfarina/feeds/c6ad6c68f53eca08ced40ed1e4b3d2d6ab99bea6/Feeds/Graphics/PivotalTrackerNotify@2x.png
--------------------------------------------------------------------------------
/Feeds/Graphics/RSSAtom.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/nfarina/feeds/c6ad6c68f53eca08ced40ed1e4b3d2d6ab99bea6/Feeds/Graphics/RSSAtom.png
--------------------------------------------------------------------------------
/Feeds/Graphics/RSSAtom@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/nfarina/feeds/c6ad6c68f53eca08ced40ed1e4b3d2d6ab99bea6/Feeds/Graphics/RSSAtom@2x.png
--------------------------------------------------------------------------------
/Feeds/Graphics/RSSAtomAccount.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/nfarina/feeds/c6ad6c68f53eca08ced40ed1e4b3d2d6ab99bea6/Feeds/Graphics/RSSAtomAccount.png
--------------------------------------------------------------------------------
/Feeds/Graphics/RSSAtomAccount@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/nfarina/feeds/c6ad6c68f53eca08ced40ed1e4b3d2d6ab99bea6/Feeds/Graphics/RSSAtomAccount@2x.png
--------------------------------------------------------------------------------
/Feeds/Graphics/RSSAtomNotify.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/nfarina/feeds/c6ad6c68f53eca08ced40ed1e4b3d2d6ab99bea6/Feeds/Graphics/RSSAtomNotify.png
--------------------------------------------------------------------------------
/Feeds/Graphics/RSSAtomNotify@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/nfarina/feeds/c6ad6c68f53eca08ced40ed1e4b3d2d6ab99bea6/Feeds/Graphics/RSSAtomNotify@2x.png
--------------------------------------------------------------------------------
/Feeds/Graphics/Scholica.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/nfarina/feeds/c6ad6c68f53eca08ced40ed1e4b3d2d6ab99bea6/Feeds/Graphics/Scholica.png
--------------------------------------------------------------------------------
/Feeds/Graphics/Scholica@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/nfarina/feeds/c6ad6c68f53eca08ced40ed1e4b3d2d6ab99bea6/Feeds/Graphics/Scholica@2x.png
--------------------------------------------------------------------------------
/Feeds/Graphics/ScholicaAccount.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/nfarina/feeds/c6ad6c68f53eca08ced40ed1e4b3d2d6ab99bea6/Feeds/Graphics/ScholicaAccount.png
--------------------------------------------------------------------------------
/Feeds/Graphics/ScholicaAccount@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/nfarina/feeds/c6ad6c68f53eca08ced40ed1e4b3d2d6ab99bea6/Feeds/Graphics/ScholicaAccount@2x.png
--------------------------------------------------------------------------------
/Feeds/Graphics/ScholicaNotify.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/nfarina/feeds/c6ad6c68f53eca08ced40ed1e4b3d2d6ab99bea6/Feeds/Graphics/ScholicaNotify.png
--------------------------------------------------------------------------------
/Feeds/Graphics/ScholicaNotify@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/nfarina/feeds/c6ad6c68f53eca08ced40ed1e4b3d2d6ab99bea6/Feeds/Graphics/ScholicaNotify@2x.png
--------------------------------------------------------------------------------
/Feeds/Graphics/StatusItem.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/nfarina/feeds/c6ad6c68f53eca08ced40ed1e4b3d2d6ab99bea6/Feeds/Graphics/StatusItem.png
--------------------------------------------------------------------------------
/Feeds/Graphics/StatusItem@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/nfarina/feeds/c6ad6c68f53eca08ced40ed1e4b3d2d6ab99bea6/Feeds/Graphics/StatusItem@2x.png
--------------------------------------------------------------------------------
/Feeds/Graphics/StatusItemInactive.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/nfarina/feeds/c6ad6c68f53eca08ced40ed1e4b3d2d6ab99bea6/Feeds/Graphics/StatusItemInactive.png
--------------------------------------------------------------------------------
/Feeds/Graphics/StatusItemInactive@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/nfarina/feeds/c6ad6c68f53eca08ced40ed1e4b3d2d6ab99bea6/Feeds/Graphics/StatusItemInactive@2x.png
--------------------------------------------------------------------------------
/Feeds/Graphics/StatusItemSelected.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/nfarina/feeds/c6ad6c68f53eca08ced40ed1e4b3d2d6ab99bea6/Feeds/Graphics/StatusItemSelected.png
--------------------------------------------------------------------------------
/Feeds/Graphics/StatusItemSelected@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/nfarina/feeds/c6ad6c68f53eca08ced40ed1e4b3d2d6ab99bea6/Feeds/Graphics/StatusItemSelected@2x.png
--------------------------------------------------------------------------------
/Feeds/Graphics/StatusItemUnread.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/nfarina/feeds/c6ad6c68f53eca08ced40ed1e4b3d2d6ab99bea6/Feeds/Graphics/StatusItemUnread.png
--------------------------------------------------------------------------------
/Feeds/Graphics/StatusItemUnread@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/nfarina/feeds/c6ad6c68f53eca08ced40ed1e4b3d2d6ab99bea6/Feeds/Graphics/StatusItemUnread@2x.png
--------------------------------------------------------------------------------
/Feeds/Graphics/Trello.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/nfarina/feeds/c6ad6c68f53eca08ced40ed1e4b3d2d6ab99bea6/Feeds/Graphics/Trello.png
--------------------------------------------------------------------------------
/Feeds/Graphics/Trello@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/nfarina/feeds/c6ad6c68f53eca08ced40ed1e4b3d2d6ab99bea6/Feeds/Graphics/Trello@2x.png
--------------------------------------------------------------------------------
/Feeds/Graphics/TrelloAccount.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/nfarina/feeds/c6ad6c68f53eca08ced40ed1e4b3d2d6ab99bea6/Feeds/Graphics/TrelloAccount.png
--------------------------------------------------------------------------------
/Feeds/Graphics/TrelloAccount@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/nfarina/feeds/c6ad6c68f53eca08ced40ed1e4b3d2d6ab99bea6/Feeds/Graphics/TrelloAccount@2x.png
--------------------------------------------------------------------------------
/Feeds/Graphics/TrelloNotify.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/nfarina/feeds/c6ad6c68f53eca08ced40ed1e4b3d2d6ab99bea6/Feeds/Graphics/TrelloNotify.png
--------------------------------------------------------------------------------
/Feeds/Graphics/TrelloNotify@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/nfarina/feeds/c6ad6c68f53eca08ced40ed1e4b3d2d6ab99bea6/Feeds/Graphics/TrelloNotify@2x.png
--------------------------------------------------------------------------------
/Feeds/Graphics/Unread.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/nfarina/feeds/c6ad6c68f53eca08ced40ed1e4b3d2d6ab99bea6/Feeds/Graphics/Unread.png
--------------------------------------------------------------------------------
/Feeds/Graphics/Unread@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/nfarina/feeds/c6ad6c68f53eca08ced40ed1e4b3d2d6ab99bea6/Feeds/Graphics/Unread@2x.png
--------------------------------------------------------------------------------
/Feeds/Graphics/UserVoice.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/nfarina/feeds/c6ad6c68f53eca08ced40ed1e4b3d2d6ab99bea6/Feeds/Graphics/UserVoice.png
--------------------------------------------------------------------------------
/Feeds/Graphics/UserVoice@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/nfarina/feeds/c6ad6c68f53eca08ced40ed1e4b3d2d6ab99bea6/Feeds/Graphics/UserVoice@2x.png
--------------------------------------------------------------------------------
/Feeds/Graphics/UserVoiceAccount.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/nfarina/feeds/c6ad6c68f53eca08ced40ed1e4b3d2d6ab99bea6/Feeds/Graphics/UserVoiceAccount.png
--------------------------------------------------------------------------------
/Feeds/Graphics/UserVoiceAccount@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/nfarina/feeds/c6ad6c68f53eca08ced40ed1e4b3d2d6ab99bea6/Feeds/Graphics/UserVoiceAccount@2x.png
--------------------------------------------------------------------------------
/Feeds/Graphics/UserVoiceNotify.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/nfarina/feeds/c6ad6c68f53eca08ced40ed1e4b3d2d6ab99bea6/Feeds/Graphics/UserVoiceNotify.png
--------------------------------------------------------------------------------
/Feeds/Graphics/UserVoiceNotify@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/nfarina/feeds/c6ad6c68f53eca08ced40ed1e4b3d2d6ab99bea6/Feeds/Graphics/UserVoiceNotify@2x.png
--------------------------------------------------------------------------------
/Feeds/Graphics/Zendesk.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/nfarina/feeds/c6ad6c68f53eca08ced40ed1e4b3d2d6ab99bea6/Feeds/Graphics/Zendesk.png
--------------------------------------------------------------------------------
/Feeds/Graphics/Zendesk@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/nfarina/feeds/c6ad6c68f53eca08ced40ed1e4b3d2d6ab99bea6/Feeds/Graphics/Zendesk@2x.png
--------------------------------------------------------------------------------
/Feeds/Graphics/ZendeskAccount.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/nfarina/feeds/c6ad6c68f53eca08ced40ed1e4b3d2d6ab99bea6/Feeds/Graphics/ZendeskAccount.png
--------------------------------------------------------------------------------
/Feeds/Graphics/ZendeskAccount@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/nfarina/feeds/c6ad6c68f53eca08ced40ed1e4b3d2d6ab99bea6/Feeds/Graphics/ZendeskAccount@2x.png
--------------------------------------------------------------------------------
/Feeds/Graphics/ZendeskNotify.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/nfarina/feeds/c6ad6c68f53eca08ced40ed1e4b3d2d6ab99bea6/Feeds/Graphics/ZendeskNotify.png
--------------------------------------------------------------------------------
/Feeds/Graphics/ZendeskNotify@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/nfarina/feeds/c6ad6c68f53eca08ced40ed1e4b3d2d6ab99bea6/Feeds/Graphics/ZendeskNotify@2x.png
--------------------------------------------------------------------------------
/Feeds/Growl Registration Ticket.growlRegDict:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | TicketVersion
6 | 1
7 | AllNotifications
8 |
9 | NewItem
10 |
11 | DefaultNotifications
12 |
13 | NewItem
14 |
15 |
16 |
17 |
--------------------------------------------------------------------------------
/Feeds/HighriseAccount.h:
--------------------------------------------------------------------------------
1 | #import "Account.h"
2 |
3 | @interface HighriseAccount : Account
4 | @end
5 |
--------------------------------------------------------------------------------
/Feeds/HighriseAccount.m:
--------------------------------------------------------------------------------
1 | #import "HighriseAccount.h"
2 |
3 | @implementation HighriseAccount
4 |
5 | + (void)load { [Account registerClass:self]; }
6 | + (BOOL)requiresDomain { return YES; }
7 | + (BOOL)requiresUsername { return YES; }
8 | + (BOOL)requiresPassword { return YES; }
9 | + (NSString *)domainSuffix { return @".highrisehq.com"; }
10 |
11 | - (void)validateWithPassword:(NSString *)password {
12 |
13 | NSString *URL = [NSString stringWithFormat:@"https://%@.highrisehq.com/me.xml", self.domain];
14 |
15 | self.request = [SMWebRequest requestWithURLRequest:[NSURLRequest requestWithURLString:URL username:self.username password:password] delegate:nil context:NULL];
16 | [self.request addTarget:self action:@selector(meRequestComplete:) forRequestEvents:SMWebRequestEventComplete];
17 | [self.request addTarget:self action:@selector(meRequestError:) forRequestEvents:SMWebRequestEventError];
18 | [self.request start];
19 | }
20 |
21 | - (void)meRequestComplete:(NSData *)data {
22 |
23 | SMXMLDocument *document = [SMXMLDocument documentWithData:data error:NULL];
24 | //NSLog(@"Document: %@", document);
25 |
26 | NSString *myName = [document.root valueWithPath:@"name"];
27 | NSString *token = [document.root valueWithPath:@"token"];
28 |
29 | NSString *firstName = nil, *lastName = nil;
30 | NSArray *parts = [myName componentsSeparatedByString:@" "];
31 |
32 | if ([parts count] == 2) {
33 | firstName = parts[0];
34 | lastName = parts[1];
35 | }
36 |
37 | NSString *mainFeedString = [NSString stringWithFormat:@"https://%@:%@@%@.highrisehq.com/recordings.atom", token, token, self.domain];
38 | Feed *mainFeed = [Feed feedWithURLString:mainFeedString title:@"Latest Activity" account:self];
39 |
40 | if ([firstName length] > 0 && [lastName length] > 0)
41 | mainFeed.author = [NSString stringWithFormat:@"%@ %@.", firstName, [lastName substringToIndex:1]];
42 |
43 | self.feeds = @[mainFeed];
44 |
45 | [self.delegate account:self validationDidCompleteWithNewPassword:nil];
46 | }
47 |
48 | - (void)meRequestError:(NSError *)error {
49 | if (error.code == 404)
50 | [self.delegate account:self validationDidFailWithMessage:@"Could not log in to the given Highrise account. Please check your domain, username, and password." field:0];
51 | else
52 | [self.delegate account:self validationDidFailWithMessage:error.localizedDescription field:AccountFailingFieldUnknown];
53 | }
54 |
55 | @end
56 |
--------------------------------------------------------------------------------
/Feeds/LoginItems.h:
--------------------------------------------------------------------------------
1 |
2 | @interface LoginItems : NSObject
3 |
4 | + (LoginItems *)userLoginItems;
5 |
6 | @property (nonatomic) BOOL currentAppLaunchesAtStartup;
7 |
8 | @end
9 |
--------------------------------------------------------------------------------
/Feeds/MyClass.h:
--------------------------------------------------------------------------------
1 | //
2 | // MyClass.h
3 | //
4 | //
5 | // Created by Nick Farina on 7/6/11.
6 | // Copyright 2011 Spotlight Mobile. All rights reserved.
7 | //
8 |
9 | #import
10 |
11 | @interface MyClass : NSString
12 |
13 | @end
14 |
--------------------------------------------------------------------------------
/Feeds/MyClass.m:
--------------------------------------------------------------------------------
1 | //
2 | // MyClass.m
3 | //
4 | //
5 | // Created by Nick Farina on 7/6/11.
6 | // Copyright 2011 Spotlight Mobile. All rights reserved.
7 | //
8 |
9 | #import "MyClass.h"
10 |
11 | @implementation MyClass
12 |
13 | - (id)init
14 | {
15 | self = [super init];
16 | if (self) {
17 | // Initialization code here.
18 | }
19 |
20 | return self;
21 | }
22 |
23 | @end
24 |
--------------------------------------------------------------------------------
/Feeds/NSAlert+Foreground.h:
--------------------------------------------------------------------------------
1 |
2 | @interface NSAlert (Foreground)
3 |
4 | - (NSInteger)runModalInForeground;
5 |
6 | @end
7 |
--------------------------------------------------------------------------------
/Feeds/NSAlert+Foreground.m:
--------------------------------------------------------------------------------
1 | #import "NSAlert+Foreground.h"
2 |
3 | @implementation NSAlert (Foreground)
4 |
5 | - (NSInteger)runModalInForeground
6 | {
7 | // Transform process from background to foreground
8 | ProcessSerialNumber psn = { 0, kCurrentProcess };
9 | SetFrontProcess(&psn);
10 |
11 | return [self runModal];
12 | }
13 |
14 | @end
15 |
--------------------------------------------------------------------------------
/Feeds/NSArray+Linqish.h:
--------------------------------------------------------------------------------
1 |
2 | // Compatibility with non-clang compilers.
3 | #ifndef __has_feature
4 | #define __has_feature(x) 0
5 | #endif
6 |
7 | @interface NSArray (Linqish)
8 |
9 | // Just like Cocoa's lastObject.
10 | - (id)firstObject;
11 |
12 | #if NS_BLOCKS_AVAILABLE
13 | - (NSArray *)selectUsingBlock:(id (^)(id obj))block;
14 | - (id)aggregateUsingBlock:(id (^)(id accumulator, id obj))block;
15 | #endif
16 |
17 | // These methods only work when compiled without ARC. They will likely be removed at some point in the future.
18 | #if !__has_feature(objc_arc)
19 | // Asks this array to collect the result of sending objects from the array to the 'selector' on 'target'.
20 | // The array constructed from all the objects returned is what is passed back. Nil object results are skipped.
21 | - (NSArray *)collect:(SEL)selector on:(id)target;
22 | - (NSArray *)collect:(SEL)selector on:(id)target secondArgument:(id)arg;
23 |
24 | // Asks this array to filter the result of sending objects from the array to the 'selector' on 'target'.
25 | // The array constructed from all the objects for which the selector returned true is what is passed back.
26 | - (NSArray *)filter:(SEL)selector on:(id)target;
27 | - (NSArray *)filter:(SEL)selector on:(id)target secondArgument:(id)secondArgument;
28 | #endif
29 |
30 | // Creates an NSDictionary from this array where the keys are found under the property 'key'.
31 | // If the object has a nil value for its 'key' property, it will be excluded from the dictionary.
32 | - (NSDictionary *)indexedWithKey:(NSString *)key;
33 |
34 | // Creates an NSDictionary from this array where the keys are found under the property 'key',
35 | // and the values are NSArrays containing the set of objects with the key in common.
36 | // If the object has a nil value for its 'key' property, it will be excluded from the dictionary.
37 | - (NSDictionary *)groupedWithKey:(NSString *)key;
38 |
39 | // Searches this array front to back and returns the first object returning the given value
40 | // for the given selector (determined with isEqual:), or nil if none found.
41 | - (id)firstObjectWithValue:(id)value forSelector:(SEL)selector;
42 |
43 | @end
44 |
--------------------------------------------------------------------------------
/Feeds/NSData+ObjectFromJSONData.h:
--------------------------------------------------------------------------------
1 | //
2 | // NSData+ObjectFromJSONData.h
3 | // Feeds
4 | //
5 | // Created by Mark Goody on 16/04/2014.
6 | // Copyright (c) 2014 Spotlight Mobile. All rights reserved.
7 | //
8 |
9 | #import
10 |
11 | @interface NSData (ObjectFromJSONData)
12 |
13 | - (id)objectFromJSONData;
14 |
15 | @end
16 |
--------------------------------------------------------------------------------
/Feeds/NSData+ObjectFromJSONData.m:
--------------------------------------------------------------------------------
1 | //
2 | // NSData+ObjectFromJSONData.m
3 | // Feeds
4 | //
5 | // Created by Mark Goody on 16/04/2014.
6 | // Copyright (c) 2014 Spotlight Mobile. All rights reserved.
7 | //
8 |
9 | #import "NSData+ObjectFromJSONData.h"
10 |
11 | @implementation NSData (ObjectFromJSONData)
12 |
13 | - (id)objectFromJSONData
14 | {
15 | NSError *decodingError = nil;
16 | id object = [NSJSONSerialization JSONObjectWithData:self
17 | options:NSJSONReadingAllowFragments
18 | error:&decodingError];
19 |
20 | if (object == nil && decodingError != nil) {
21 | NSLog(@"Error decoding JSON data");
22 | }
23 |
24 | return object;
25 | }
26 |
27 | @end
28 |
--------------------------------------------------------------------------------
/Feeds/NSDate+InternetDateTime.h:
--------------------------------------------------------------------------------
1 | //
2 | // NSDate+InternetDateTime.h
3 | // MWFeedParser
4 | //
5 | // Created by Michael Waterfall on 07/10/2010.
6 | // Copyright 2010 Michael Waterfall. All rights reserved.
7 | //
8 |
9 | #import
10 |
11 | // Formatting hints
12 | typedef enum {
13 | DateFormatHintNone,
14 | DateFormatHintRFC822,
15 | DateFormatHintRFC3339
16 | } DateFormatHint;
17 |
18 | // A category to parse internet date & time strings
19 | @interface NSDate (InternetDateTime)
20 |
21 | // Get date from RFC3339 or RFC822 string
22 | // - A format/specification hint can be used to speed up,
23 | // otherwise both will be attempted in order to get a date
24 | + (NSDate *)dateFromInternetDateTimeString:(NSString *)dateString
25 | formatHint:(DateFormatHint)hint;
26 |
27 | // Get date from a string using a specific date specification
28 | + (NSDate *)dateFromRFC3339String:(NSString *)dateString;
29 | + (NSDate *)dateFromRFC822String:(NSString *)dateString;
30 |
31 | @end
32 |
--------------------------------------------------------------------------------
/Feeds/NSDate+TimeAgo.h:
--------------------------------------------------------------------------------
1 | @interface NSDate (TimeAgo)
2 | -(NSString *)timeAgo;
3 | @end
4 |
5 |
--------------------------------------------------------------------------------
/Feeds/NSDate+TimeAgo.m:
--------------------------------------------------------------------------------
1 | #import "NSDate+TimeAgo.h"
2 |
3 | @implementation NSDate (TimeAgo)
4 |
5 |
6 | -(NSString *)timeAgo {
7 | NSDate *now = [NSDate date];
8 | double deltaSeconds = fabs([self timeIntervalSinceDate:now]);
9 | double deltaMinutes = deltaSeconds / 60.0f;
10 |
11 | if(deltaSeconds < 5) {
12 | return @"Just now";
13 | } else if(deltaSeconds < 60) {
14 | return [NSString stringWithFormat:@"%d seconds ago", (int)deltaSeconds];
15 | } else if(deltaSeconds < 120) {
16 | return @"A minute ago";
17 | } else if (deltaMinutes < 60) {
18 | return [NSString stringWithFormat:@"%d minutes ago", (int)deltaMinutes];
19 | } else if (deltaMinutes < 120) {
20 | return @"An hour ago";
21 | } else if (deltaMinutes < (24 * 60)) {
22 | return [NSString stringWithFormat:@"%d hours ago", (int)floor(deltaMinutes/60)];
23 | } else if (deltaMinutes < (24 * 60 * 2)) {
24 | return @"Yesterday";
25 | } else if (deltaMinutes < (24 * 60 * 7)) {
26 | return [NSString stringWithFormat:@"%d days ago", (int)floor(deltaMinutes/(60 * 24))];
27 | } else if (deltaMinutes < (24 * 60 * 14)) {
28 | return @"Last week";
29 | } else if (deltaMinutes < (24 * 60 * 31)) {
30 | return [NSString stringWithFormat:@"%d weeks ago", (int)floor(deltaMinutes/(60 * 24 * 7))];
31 | } else if (deltaMinutes < (24 * 60 * 61)) {
32 | return @"Last month";
33 | } else if (deltaMinutes < (24 * 60 * 365.25)) {
34 | return [NSString stringWithFormat:@"%d months ago", (int)floor(deltaMinutes/(60 * 24 * 30))];
35 | } else if (deltaMinutes < (24 * 60 * 731)) {
36 | return @"Last year";
37 | }
38 | return [NSString stringWithFormat:@"%d years ago", (int)floor(deltaMinutes/(60 * 24 * 365))];
39 | }
40 |
41 | @end
42 |
--------------------------------------------------------------------------------
/Feeds/NSDictionary+JSONString.h:
--------------------------------------------------------------------------------
1 | //
2 | // NSDictionary+JSONString.h
3 | // Feeds
4 | //
5 | // Created by Mark Goody on 17/04/2014.
6 | // Copyright (c) 2014 Spotlight Mobile. All rights reserved.
7 | //
8 |
9 | #import
10 |
11 | @interface NSDictionary (JSONString)
12 |
13 | - (NSString *)JSONString;
14 |
15 | @end
16 |
--------------------------------------------------------------------------------
/Feeds/NSDictionary+JSONString.m:
--------------------------------------------------------------------------------
1 | //
2 | // NSDictionary+JSONString.m
3 | // Feeds
4 | //
5 | // Created by Mark Goody on 17/04/2014.
6 | // Copyright (c) 2014 Spotlight Mobile. All rights reserved.
7 | //
8 |
9 | #import "NSDictionary+JSONString.h"
10 |
11 | @implementation NSDictionary (JSONString)
12 |
13 | - (NSString *)JSONString
14 | {
15 | NSError *encodingError = nil;
16 | NSData *jsonData = [NSJSONSerialization dataWithJSONObject:self
17 | options:0
18 | error:&encodingError];
19 |
20 | if (jsonData == nil && encodingError != nil) {
21 | NSLog(@"Error encoding JSON data for dictionary: %@", encodingError.localizedDescription);
22 | }
23 |
24 | NSString *jsonString = nil;
25 | if (jsonData != nil) {
26 | jsonString = [[NSString alloc] initWithBytes:jsonData.bytes
27 | length:jsonData.length
28 | encoding:NSUTF8StringEncoding];
29 | }
30 |
31 | return jsonString;
32 | }
33 |
34 | @end
35 |
--------------------------------------------------------------------------------
/Feeds/NSString+Base64.h:
--------------------------------------------------------------------------------
1 |
2 | @interface NSString (Base64)
3 |
4 | - (NSString *)base64EncodedString;
5 |
6 | @end
7 |
--------------------------------------------------------------------------------
/Feeds/NSString+Base64.m:
--------------------------------------------------------------------------------
1 | #import "NSString+Base64.h"
2 |
3 | @implementation NSString (Base64)
4 |
5 | - (NSString *)base64EncodedString {
6 |
7 | char *base64Chars = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/";
8 | NSMutableString *result = [NSMutableString new];
9 | int i;
10 | int len = (int)[self length];
11 | int paddingBytes = 0;
12 |
13 | for (i = 0; i < len; i+=3)
14 | {
15 | UInt32 threeBytes = [self characterAtIndex:i] * 0x10000;
16 |
17 | if (i < len - 1) threeBytes += [self characterAtIndex:i+1] * 0x100;
18 | else paddingBytes++;
19 |
20 | if (i < len - 2) threeBytes += [self characterAtIndex:i+2];
21 | else paddingBytes++;
22 |
23 | [result appendFormat:@"%c%c%c%c",
24 | base64Chars[(threeBytes >> 18) & 0x3f],
25 | base64Chars[(threeBytes >> 12) & 0x3f],
26 | paddingBytes > 1 ? '=' : base64Chars[(threeBytes >> 6) & 0x3f],
27 | paddingBytes > 0 ? '=' : base64Chars[ threeBytes & 0x3f]];
28 | }
29 |
30 | return result;
31 | }
32 |
33 | @end
34 |
--------------------------------------------------------------------------------
/Feeds/NSString+EmailValidation.h:
--------------------------------------------------------------------------------
1 |
2 | @interface NSString (EmailValidation)
3 |
4 | - (BOOL)isValidEmailAddress;
5 |
6 | @end
7 |
--------------------------------------------------------------------------------
/Feeds/NSString+EmailValidation.m:
--------------------------------------------------------------------------------
1 | @implementation NSString (EmailValidation)
2 |
3 | - (BOOL)isValidEmailAddress {
4 |
5 | NSString *emailRegex =
6 | @"(?:[a-z0-9!#$%\\&'*+/=?\\^_`{|}~-]+(?:\\.[a-z0-9!#$%\\&'*+/=?\\^_`{|}"
7 | @"~-]+)*|\"(?:[\\x01-\\x08\\x0b\\x0c\\x0e-\\x1f\\x21\\x23-\\x5b\\x5d-\\"
8 | @"x7f]|\\\\[\\x01-\\x09\\x0b\\x0c\\x0e-\\x7f])*\")@(?:(?:[a-z0-9](?:[a-"
9 | @"z0-9-]*[a-z0-9])?\\.)+[a-z0-9](?:[a-z0-9-]*[a-z0-9])?|\\[(?:(?:25[0-5"
10 | @"]|2[0-4][0-9]|[01]?[0-9][0-9]?)\\.){3}(?:25[0-5]|2[0-4][0-9]|[01]?[0-"
11 | @"9][0-9]?|[a-z0-9-]*[a-z0-9]:(?:[\\x01-\\x08\\x0b\\x0c\\x0e-\\x1f\\x21"
12 | @"-\\x5a\\x53-\\x7f]|\\\\[\\x01-\\x09\\x0b\\x0c\\x0e-\\x7f])+)\\])";
13 |
14 | NSPredicate *emailTest = [NSPredicate predicateWithFormat:@"SELF MATCHES %@", emailRegex];
15 |
16 | return [emailTest evaluateWithObject:self];
17 | }
18 |
19 | @end
20 |
--------------------------------------------------------------------------------
/Feeds/NSString+English.h:
--------------------------------------------------------------------------------
1 |
2 | BOOL NSEqualStrings(NSString *aString, NSString *bString);
3 | BOOL NSEqualObjects(id a, id b);
4 |
5 | @interface NSString (English)
6 |
7 | // Appends an "s" to this word if count is greater than 1.
8 | - (NSString *)pluralizedForCount:(NSUInteger)count;
9 |
10 | // Removes the given prefix from this string, if it exists. Useful for removing "the " from strings before sorting.
11 | - (NSString *)stringByRemovingPrefix:(NSString *)prefix;
12 |
13 | // These should really be in the cocoa framework already. I mean, come on.
14 | - (BOOL)containsString:(NSString *)substring;
15 | - (BOOL)containsString:(NSString *)substring options:(NSStringCompareOptions)mask;
16 | - (BOOL)containsCharacterFromSet:(NSCharacterSet *)set;
17 | - (BOOL)containsCharacterFromSet:(NSCharacterSet *)set options:(NSStringCompareOptions)mask;
18 | - (BOOL)beginsWithString:(NSString *)substring;
19 | - (BOOL)beginsWithString:(NSString *)substring options:(NSStringCompareOptions)mask;
20 | - (BOOL)endsWithString:(NSString *)substring;
21 | - (BOOL)endsWithString:(NSString *)substring options:(NSStringCompareOptions)mask;
22 |
23 | @end
--------------------------------------------------------------------------------
/Feeds/NSString+English.m:
--------------------------------------------------------------------------------
1 | #import "NSString+English.h"
2 |
3 | BOOL NSEqualStrings(NSString *aString, NSString *bString) {
4 | return (!aString && !bString) || [aString isEqualToString:bString];
5 | }
6 |
7 | BOOL NSEqualObjects(id a, id b) {
8 | return (!a && !b) || [a isEqual:b];
9 | }
10 |
11 | @implementation NSString (English)
12 |
13 | - (NSString *)pluralizedForCount:(NSUInteger)count {
14 | if (count == 1)
15 | return self;
16 | else
17 | return [self stringByAppendingString:@"s"];
18 | }
19 |
20 | - (NSString *)stringByRemovingPrefix:(NSString *)prefix {
21 | if (self.length > prefix.length && [self rangeOfString:prefix options:NSCaseInsensitiveSearch].location == 0)
22 | return [self substringFromIndex:prefix.length];
23 | else
24 | return self;
25 | }
26 |
27 | - (BOOL)containsString:(NSString *)substring {
28 | return [self containsString:substring options:0];
29 | }
30 |
31 | - (BOOL)containsString:(NSString *)substring options:(NSStringCompareOptions)mask {
32 | return substring && [self rangeOfString:substring options:mask].location != NSNotFound;
33 | }
34 |
35 | - (BOOL)containsCharacterFromSet:(NSCharacterSet *)set {
36 | return [self containsCharacterFromSet:set options:0];
37 | }
38 |
39 | - (BOOL)containsCharacterFromSet:(NSCharacterSet *)set options:(NSStringCompareOptions)mask {
40 | return set && [self rangeOfCharacterFromSet:set options:mask].location != NSNotFound;
41 | }
42 |
43 | - (BOOL)beginsWithString:(NSString *)substring {
44 | return [self beginsWithString:substring options:0];
45 | }
46 |
47 | - (BOOL)beginsWithString:(NSString *)substring options:(NSStringCompareOptions)mask {
48 | return substring && [self rangeOfString:substring options:mask].location == 0;
49 | }
50 |
51 | - (BOOL)endsWithString:(NSString *)substring {
52 | return [self endsWithString:substring options:0];
53 | }
54 |
55 | - (BOOL)endsWithString:(NSString *)substring options:(NSStringCompareOptions)mask {
56 | return substring && [self rangeOfString:substring options:mask].location == ([self length] - [substring length]);
57 | }
58 |
59 | @end
60 |
--------------------------------------------------------------------------------
/Feeds/NSString+EntityDecoding.h:
--------------------------------------------------------------------------------
1 |
2 | @interface NSString (EntityDecoding)
3 |
4 | // stringWithFormat and %C can't handle extended ASCII codes from 127 to 160; this function will handle both.
5 | // (assuming it's a particular sort of old-school MS Windows-based encoding)
6 | extern NSString* NSStringFromCharacterCode(int code);
7 |
8 | // Decodes character entities as specified in HTML, e.g. """, "&emdash;", " ", etc.
9 | - (NSString *)stringByDecodingCharacterEntities;
10 |
11 | // Takes the given string containing HTML and strips all HTML entities except P and BR which are turned into genuine linebreaks.
12 | // As a side-effect, also condenses whitespace as you would expect from HTML.
13 | - (NSString *)stringByFlatteningHTML;
14 |
15 | // Compresses characters in the given set into single spaces.
16 | - (NSString *)stringByCondensingSet:(NSCharacterSet *)set;
17 |
18 | @end
19 |
--------------------------------------------------------------------------------
/Feeds/NSString+ObjectFromJSONString.h:
--------------------------------------------------------------------------------
1 | //
2 | // NSString+ObjectFromJSONString.h
3 | // Feeds
4 | //
5 | // Created by Mark Goody on 17/04/2014.
6 | // Copyright (c) 2014 Spotlight Mobile. All rights reserved.
7 | //
8 |
9 | #import
10 |
11 | @interface NSString (ObjectFromJSONString)
12 |
13 | - (id)objectFromJSONString;
14 |
15 | @end
16 |
--------------------------------------------------------------------------------
/Feeds/NSString+ObjectFromJSONString.m:
--------------------------------------------------------------------------------
1 | //
2 | // NSString+ObjectFromJSONString.m
3 | // Feeds
4 | //
5 | // Created by Mark Goody on 17/04/2014.
6 | // Copyright (c) 2014 Spotlight Mobile. All rights reserved.
7 | //
8 |
9 | #import "NSString+ObjectFromJSONString.h"
10 | #import "NSData+ObjectFromJSONData.h"
11 |
12 | @implementation NSString (ObjectFromJSONString)
13 |
14 | - (id)objectFromJSONString
15 | {
16 | NSData *jsonData = [self dataUsingEncoding:NSUTF8StringEncoding];
17 |
18 | return [jsonData objectFromJSONData];
19 | }
20 |
21 | @end
22 |
--------------------------------------------------------------------------------
/Feeds/NSString+Truncated.h:
--------------------------------------------------------------------------------
1 |
2 | @interface NSString (Truncated)
3 |
4 | - (NSString *)truncatedAfterIndex:(NSUInteger)index;
5 | - (NSString *)truncatedWithString:(NSString *)truncationString afterIndex:(NSUInteger)index;
6 |
7 | @end
8 |
--------------------------------------------------------------------------------
/Feeds/NSString+Truncated.m:
--------------------------------------------------------------------------------
1 | #import "NSString+Truncated.h"
2 |
3 | @implementation NSString (Truncated)
4 |
5 | - (NSString *)truncatedAfterIndex:(NSUInteger)index {
6 | return [self truncatedWithString:@"…" afterIndex:index];
7 | }
8 |
9 | - (NSString *)truncatedWithString:(NSString *)truncationString afterIndex:(NSUInteger)index {
10 | if (self.length > index) {
11 |
12 | // chop!
13 | NSString *truncated = [self substringToIndex:index];
14 |
15 | // make sure to clip any extra whitespace that may have been revealed after we chopped off the string
16 | truncated = [truncated stringByTrimmingCharactersInSet:[NSCharacterSet whitespaceAndNewlineCharacterSet]];
17 |
18 | // add the truncation character, most likely an ellipsis
19 | return [truncated stringByAppendingString:truncationString];
20 | }
21 | else
22 | return self;
23 | }
24 |
25 | @end
26 |
--------------------------------------------------------------------------------
/Feeds/NSString+URLArgument.h:
--------------------------------------------------------------------------------
1 |
2 | @interface NSString (URLArgument)
3 |
4 | /// Returns a string that is escaped properly to be a URL argument.
5 | //
6 | /// This differs from stringByAddingPercentEscapesUsingEncoding: in that it
7 | /// will escape all the reserved characters (per RFC 3986
8 | /// ) which
9 | /// stringByAddingPercentEscapesUsingEncoding would leave.
10 | ///
11 | /// This will also escape '%', so this should not be used on a string that has
12 | /// already been escaped unless double-escaping is the desired result.
13 | - (NSString*)stringByEscapingForURLArgument;
14 |
15 | /// Returns the unescaped version of a URL argument
16 | //
17 | /// This has the same behavior as stringByReplacingPercentEscapesUsingEncoding:,
18 | /// except that it will also convert '+' to space.
19 | - (NSString*)stringByUnescapingFromURLArgument;
20 |
21 | @end
22 |
--------------------------------------------------------------------------------
/Feeds/NSString+URLArgument.m:
--------------------------------------------------------------------------------
1 | #import "NSString+URLArgument.h"
2 |
3 | @implementation NSString (URLArgument)
4 |
5 | - (NSString*)stringByEscapingForURLArgument {
6 | // Encode all the reserved characters, per RFC 3986
7 | // ()
8 | NSString *escaped = (NSString *)
9 | CFBridgingRelease(CFURLCreateStringByAddingPercentEscapes(kCFAllocatorDefault,
10 | (CFStringRef)self,
11 | NULL,
12 | (CFStringRef)@"!*'();:@&=+$,/?%#[]",
13 | kCFStringEncodingUTF8));
14 | return escaped;
15 | }
16 |
17 | - (NSString*)stringByUnescapingFromURLArgument {
18 | NSMutableString *resultString = [NSMutableString stringWithString:self];
19 | [resultString replaceOccurrencesOfString:@"+"
20 | withString:@" "
21 | options:NSLiteralSearch
22 | range:NSMakeRange(0, [resultString length])];
23 | return [resultString stringByReplacingPercentEscapesUsingEncoding:NSUTF8StringEncoding];
24 | }
25 |
26 | @end
27 |
--------------------------------------------------------------------------------
/Feeds/NSURLRequest+Authorization.h:
--------------------------------------------------------------------------------
1 | #import "OAuth2Token.h"
2 |
3 | @interface NSURLRequest (Authorization)
4 |
5 | + (NSMutableURLRequest *)requestWithURL:(NSURL *)URL username:(NSString *)username password:(NSString *)password;
6 | + (NSMutableURLRequest *)requestWithURLString:(NSString *)URLString username:(NSString *)username password:(NSString *)password;
7 |
8 | + (NSMutableURLRequest *)requestWithURL:(NSURL *)URL OAuth2Token:(OAuth2Token *)token;
9 | + (NSMutableURLRequest *)requestWithURLString:(NSString *)URLString OAuth2Token:(OAuth2Token *)token;
10 |
11 | @end
12 |
--------------------------------------------------------------------------------
/Feeds/NSURLRequest+Authorization.m:
--------------------------------------------------------------------------------
1 | #import "NSURLRequest+Authorization.h"
2 |
3 | @implementation NSURLRequest (Authorization)
4 |
5 | + (NSMutableURLRequest *)requestWithURL:(NSURL *)URL username:(NSString *)username password:(NSString *)password {
6 |
7 | NSString *loginString = [NSString stringWithFormat:@"%@:%@", username, password];
8 | NSString *authHeader = [@"Basic " stringByAppendingString:[loginString base64EncodedString]];
9 |
10 | NSMutableURLRequest *request = [[NSMutableURLRequest alloc] initWithURL:URL];
11 | [request setValue:authHeader forHTTPHeaderField:@"Authorization"];
12 | return request;
13 | }
14 |
15 | + (NSMutableURLRequest *)requestWithURLString:(NSString *)URLString username:(NSString *)username password:(NSString *)password {
16 | return [self requestWithURL:[NSURL URLWithString:URLString] username:username password:password];
17 | }
18 |
19 | + (NSMutableURLRequest *)requestWithURL:(NSURL *)URL OAuth2Token:(OAuth2Token *)token; {
20 |
21 | NSString *authHeader = [@"Bearer " stringByAppendingString:token.access_token];
22 |
23 | NSMutableURLRequest *request = [[NSMutableURLRequest alloc] initWithURL:URL];
24 | [request setValue:authHeader forHTTPHeaderField:@"Authorization"];
25 | [request setValue:@"Feeds (http://feedsapp.com)" forHTTPHeaderField:@"User-Agent"]; // basecamp wants this for instance
26 | return request;
27 | }
28 |
29 | + (NSMutableURLRequest *)requestWithURLString:(NSString *)URLString OAuth2Token:(OAuth2Token *)token; {
30 | return [self requestWithURL:[NSURL URLWithString:URLString] OAuth2Token:token];
31 | }
32 |
33 | @end
34 |
--------------------------------------------------------------------------------
/Feeds/NSView+PrintHierarchy.h:
--------------------------------------------------------------------------------
1 | @interface NSView (PrintHierarchy)
2 |
3 | - (void)printViewHierarchy;
4 |
5 | @end
6 |
--------------------------------------------------------------------------------
/Feeds/NSView+PrintHierarchy.m:
--------------------------------------------------------------------------------
1 | #import "NSView+PrintHierarchy.h"
2 |
3 | @implementation NSView (PrintHierarchy)
4 |
5 | + (void)printViewHierarchy:(NSView *)view indent:(NSString *)indent {
6 | NSLog(@"%@%@ frame = (%f,%f,%f,%f)", indent, view, view.frame.origin.x, view.frame.origin.y, view.frame.size.width, view.frame.size.height);
7 |
8 | indent = [indent stringByAppendingString:@" "];
9 |
10 | for(NSView *subview in [view subviews])
11 | [NSView printViewHierarchy:subview indent:indent];
12 | }
13 |
14 | - (void)printViewHierarchy {
15 | [NSView printViewHierarchy:self indent:@""];
16 | }
17 |
18 | @end
19 |
--------------------------------------------------------------------------------
/Feeds/OAuth2Token.h:
--------------------------------------------------------------------------------
1 |
2 | @interface OAuth2Token : NSObject
3 |
4 | @property (nonatomic, copy) NSString *access_token, *refresh_token;
5 |
6 | - (id)initWithTokenResponse:(NSData *)responseData error:(NSString **)error;
7 |
8 | - (NSString *)stringRepresentation;
9 | + (OAuth2Token *)tokenWithStringRepresentation:(NSString *)string;
10 |
11 | @end
12 |
--------------------------------------------------------------------------------
/Feeds/OAuth2Token.m:
--------------------------------------------------------------------------------
1 | #import "OAuth2Token.h"
2 |
3 | @implementation OAuth2Token
4 |
5 | - (id)initWithTokenResponse:(NSData *)responseData error:(NSString **)error {
6 | if (self = [super init]) {
7 |
8 | NSDictionary *response = [responseData objectFromJSONData];
9 | self.access_token = response[@"access_token"];
10 | self.refresh_token = response[@"refresh_token"];
11 |
12 | (*error) = response[@"error"];
13 | if (*error) {
14 | return nil;
15 | }
16 |
17 | if (!self.access_token && !self.refresh_token) {
18 | *error = @"Token not found";
19 | return nil;
20 | }
21 | }
22 | return self;
23 | }
24 |
25 | - (NSString *)stringRepresentation {
26 | NSDictionary *dict = @{@"access_token": self.access_token,
27 | @"refresh_token": self.refresh_token};
28 | return [dict JSONString];
29 | }
30 |
31 | + (OAuth2Token *)tokenWithStringRepresentation:(NSString *)string {
32 | NSDictionary *dict = [string objectFromJSONString];
33 |
34 | if (dict) {
35 | OAuth2Token *token = [OAuth2Token new];
36 | token.access_token = dict[@"access_token"];
37 | token.refresh_token = dict[@"refresh_token"];
38 | return token;
39 | }
40 | else return nil;
41 | }
42 |
43 | @end
44 |
--------------------------------------------------------------------------------
/Feeds/PivotalTrackerAccount.h:
--------------------------------------------------------------------------------
1 | #import "Account.h"
2 |
3 | @interface PivotalTrackerAccount : Account
4 | @end
5 |
--------------------------------------------------------------------------------
/Feeds/Popover/Popover.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
6 |
35 |
36 |
37 |
38 |
39 |
%@
40 |
%@
41 |
42 | %@
43 |
44 |
45 |
46 |
47 |
48 |
51 |
52 |
--------------------------------------------------------------------------------
/Feeds/PreferencesController.h:
--------------------------------------------------------------------------------
1 |
2 | #define DEFAULT_REFRESH_INTERVAL 30*60; // default to 30 minutes if none specified
3 |
4 | typedef enum {
5 | NotificationTypeUserNotificationCenter = 0,
6 | NotificationTypeGrowl = 1,
7 | NotificationTypeDisabled = 2
8 | } NotificationType;
9 |
10 | @interface PreferencesController : NSWindowController
11 |
12 | + (void)migrateSettings; // from an older version of Feeds
13 |
14 | - (id)initPreferencesController;
15 | - (void)showPreferences;
16 |
17 | @end
18 |
--------------------------------------------------------------------------------
/Feeds/Prefs.h:
--------------------------------------------------------------------------------
1 |
2 | #ifdef DEBUG
3 |
4 | // You can uncomment this as a development-time nicety if you're working on a particular account.
5 | // If uncommented, only the given account class will be used and Feeds will ignore all others.
6 | // Additionally, we'll open the Preferences window and start the Add New Account process so
7 | // you can easily test adding accounts.
8 |
9 | //#define ISOLATE_ACCOUNTS [NSArray arrayWithObjects:@"GithubAccount",nil]
10 |
11 | #endif
12 |
--------------------------------------------------------------------------------
/Feeds/RSSAtomAccount.h:
--------------------------------------------------------------------------------
1 | #import "Account.h"
2 |
3 | @interface RSSAtomAccount : Account
4 | @end
5 |
--------------------------------------------------------------------------------
/Feeds/ScholicaAccount.h:
--------------------------------------------------------------------------------
1 | #import "Account.h"
2 |
3 | @interface ScholicaAccount : Account
4 | @end
5 |
--------------------------------------------------------------------------------
/Feeds/ScholicaAccount.m:
--------------------------------------------------------------------------------
1 | #import "ScholicaAccount.h"
2 |
3 | @implementation ScholicaAccount
4 |
5 | + (void)load { [Account registerClass:self]; }
6 | + (BOOL)requiresUsername { return YES; }
7 | + (BOOL)requiresPassword { return YES; }
8 | - (NSTimeInterval)refreshInterval { return 60; } // 60 seconds
9 |
10 | - (void)validateWithPassword:(NSString *)password {
11 |
12 | NSString *URL = @"https://api.scholica.com/1.0/notifications/rss";
13 |
14 | self.request = [SMWebRequest requestWithURLRequest:[NSURLRequest requestWithURLString:URL username:self.username password:password] delegate:nil context:password];
15 | [self.request addTarget:self action:@selector(rssRequestComplete:password:) forRequestEvents:SMWebRequestEventComplete];
16 | [self.request addTarget:self action:@selector(rssRequestError:) forRequestEvents:SMWebRequestEventError];
17 | [self.request start];
18 | }
19 |
20 | - (void)rssRequestComplete:(NSData *)data password:(NSString *)password {
21 |
22 | SMXMLDocument *document = [SMXMLDocument documentWithData:data error:NULL];
23 | NSString *title = [document.root valueWithPath:@"channel.title"];
24 | NSString *author = [title stringByReplacingOccurrencesOfString:@"Scholica activity for " withString:@""];
25 |
26 | NSString *URL = @"https://api.scholica.com/1.0/notifications/rss";
27 |
28 | Feed *feed = [Feed feedWithURLString:URL title:@"My notifications" author:author account:self];
29 | feed.requiresBasicAuth = YES;
30 | self.feeds = @[feed];
31 |
32 | [self.delegate account:self validationDidCompleteWithNewPassword:password];
33 | }
34 |
35 | - (void)rssRequestError:(NSError *)error {
36 | if (error.code == 401)
37 | [self.delegate account:self validationDidFailWithMessage:@"Could not log in to the given Scholica account. Please check your username and password." field:0];
38 | else
39 | [self.delegate account:self validationDidFailWithMessage:error.localizedDescription field:AccountFailingFieldUnknown];
40 | }
41 |
42 | @end
43 |
--------------------------------------------------------------------------------
/Feeds/StatusItemView.h:
--------------------------------------------------------------------------------
1 |
2 | typedef enum {
3 | StatusItemIconNormal,
4 | StatusItemIconUnread,
5 | StatusItemIconInactive
6 | } StatusItemIcon;
7 |
8 | @interface StatusItemView : NSView
9 |
10 | - (id)initWithStatusItem:(NSStatusItem *)statusItem;
11 |
12 | - (void)toggleMenu;
13 |
14 | @property (nonatomic, assign) StatusItemIcon icon;
15 | @property (nonatomic, assign) BOOL highlighted;
16 |
17 | @end
18 |
--------------------------------------------------------------------------------
/Feeds/TrelloAccount.h:
--------------------------------------------------------------------------------
1 | #import "Account.h"
2 |
3 | @interface TrelloAccount : Account
4 | @end
5 |
--------------------------------------------------------------------------------
/Feeds/UserVoiceAccount.h:
--------------------------------------------------------------------------------
1 | #import "Account.h"
2 |
3 | @interface UserVoiceAccount : Account
4 | @end
5 |
--------------------------------------------------------------------------------
/Feeds/UserVoiceAccount.m:
--------------------------------------------------------------------------------
1 | #import "UserVoiceAccount.h"
2 |
3 | @implementation UserVoiceAccount
4 |
5 | + (void)load { [Account registerClass:self]; }
6 | + (BOOL)requiresDomain { return YES; }
7 | + (NSString *)domainSuffix { return @".uservoice.com"; }
8 |
9 | - (void)validateWithPassword:(NSString *)password {
10 |
11 | NSString *URL = [NSString stringWithFormat:@"http://%@.uservoice.com", self.domain];
12 |
13 | self.request = [SMWebRequest requestWithURL:[NSURL URLWithString:URL] delegate:nil context:NULL];
14 | [self.request addTarget:self action:@selector(forumRequestComplete:) forRequestEvents:SMWebRequestEventComplete];
15 | [self.request addTarget:self action:@selector(forumRequestError:) forRequestEvents:SMWebRequestEventError];
16 | [self.request start];
17 | }
18 |
19 | - (void)forumRequestComplete:(NSData *)data {
20 |
21 | TFHpple *html = [[TFHpple alloc] initWithHTMLData:data];
22 | NSArray *links = [html searchWithXPathQuery:@"//link[@type='application/atom+xml']"];
23 |
24 | NSMutableArray *foundFeeds = [NSMutableArray array];
25 |
26 | for (TFHppleElement *link in links) {
27 | NSString *href = (link.attributes)[@"href"];
28 | NSString *title = (link.attributes)[@"title"];
29 |
30 | // "All activity on feedsapp.uservoice.com" -> "All activity"
31 | NSString *suffix = [NSString stringWithFormat:@" on %@.uservoice.com",self.domain];
32 | title = [title stringByReplacingOccurrencesOfString:suffix withString:@""];
33 |
34 | Feed *feed = [Feed feedWithURLString:href title:title account:self];
35 | feed.disabled = ![title containsString:@"All activity"]; // by default, enable "All activity", disable the rest.
36 |
37 | if (![foundFeeds containsObject:feed]) // sometimes their HTML contains duplicate feed links.
38 | [foundFeeds addObject:feed];
39 | }
40 |
41 | self.feeds = foundFeeds;
42 | [self.delegate account:self validationDidCompleteWithNewPassword:nil];
43 | }
44 |
45 | - (void)forumRequestError:(NSError *)error {
46 | if (error.code == 404)
47 | [self.delegate account:self validationDidFailWithMessage:@"Could not find the given UserVoice account." field:AccountFailingFieldDomain];
48 | else
49 | [self.delegate account:self validationDidFailWithMessage:error.localizedDescription field:AccountFailingFieldUnknown];
50 | }
51 |
52 | @end
53 |
--------------------------------------------------------------------------------
/Feeds/ZendeskAccount.h:
--------------------------------------------------------------------------------
1 | #import "Account.h"
2 |
3 | @interface ZendeskAccount : Account
4 |
5 | @end
6 |
--------------------------------------------------------------------------------
/Feeds/en.lproj/Credits.rtf:
--------------------------------------------------------------------------------
1 | {\rtf1\ansi\ansicpg1252\cocoartf1138\cocoasubrtf230
2 | {\fonttbl\f0\fswiss\fcharset0 Helvetica;}
3 | {\colortbl;\red255\green255\blue255;}
4 | \vieww9600\viewh8400\viewkind0
5 | \pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural
6 |
7 | \f0\fs24 \cf0 Nick Farina
8 | \b @nfarina
9 | \b0 \
10 | Eric Grossnickle
11 | \b @egrossnickle}
--------------------------------------------------------------------------------
/Feeds/en.lproj/InfoPlist.strings:
--------------------------------------------------------------------------------
1 | /* Localized versions of Info.plist keys */
2 |
3 |
--------------------------------------------------------------------------------
/Feeds/main.m:
--------------------------------------------------------------------------------
1 |
2 | int main(int argc, char *argv[])
3 | {
4 | return NSApplicationMain(argc, (const char **)argv);
5 | }
6 |
--------------------------------------------------------------------------------
/Frameworks/Growl.framework/Growl:
--------------------------------------------------------------------------------
1 | Versions/Current/Growl
--------------------------------------------------------------------------------
/Frameworks/Growl.framework/Headers:
--------------------------------------------------------------------------------
1 | Versions/Current/Headers
--------------------------------------------------------------------------------
/Frameworks/Growl.framework/Resources:
--------------------------------------------------------------------------------
1 | Versions/Current/Resources
--------------------------------------------------------------------------------
/Frameworks/Growl.framework/Versions/A/Growl:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/nfarina/feeds/c6ad6c68f53eca08ced40ed1e4b3d2d6ab99bea6/Frameworks/Growl.framework/Versions/A/Growl
--------------------------------------------------------------------------------
/Frameworks/Growl.framework/Versions/A/Headers/Growl.h:
--------------------------------------------------------------------------------
1 | #include
2 |
3 | #ifdef __OBJC__
4 | # include
5 | #endif
6 |
--------------------------------------------------------------------------------
/Frameworks/Growl.framework/Versions/A/Resources/Info.plist:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | BuildMachineOSBuild
6 | 12C60
7 | CFBundleDevelopmentRegion
8 | English
9 | CFBundleExecutable
10 | Growl
11 | CFBundleIdentifier
12 | com.growl.growlframework
13 | CFBundleInfoDictionaryVersion
14 | 6.0
15 | CFBundlePackageType
16 | FMWK
17 | CFBundleShortVersionString
18 | 2.0.1
19 | CFBundleSignature
20 | GRRR
21 | CFBundleVersion
22 | 2.0.1
23 | DTCompiler
24 | com.apple.compilers.llvm.clang.1_0
25 | DTPlatformBuild
26 | 4G2008a
27 | DTPlatformVersion
28 | GM
29 | DTSDKBuild
30 | 12C37
31 | DTSDKName
32 | macosx10.8
33 | DTXcode
34 | 0452
35 | DTXcodeBuild
36 | 4G2008a
37 | NSPrincipalClass
38 | GrowlApplicationBridge
39 |
40 |
41 |
--------------------------------------------------------------------------------
/Frameworks/Growl.framework/Versions/A/_CodeSignature/CodeResources:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | files
6 |
7 | Resources/Info.plist
8 |
9 | VZb3f8My4te/5JwcjfvotgCXTAs=
10 |
11 |
12 | rules
13 |
14 | ^Resources/
15 |
16 | ^Resources/.*\.lproj/
17 |
18 | optional
19 |
20 | weight
21 | 1000
22 |
23 | ^Resources/.*\.lproj/locversion.plist$
24 |
25 | omit
26 |
27 | weight
28 | 1100
29 |
30 | ^version.plist$
31 |
32 |
33 |
34 |
35 |
--------------------------------------------------------------------------------
/Frameworks/Growl.framework/Versions/Current:
--------------------------------------------------------------------------------
1 | A
--------------------------------------------------------------------------------
/Frameworks/ShortcutRecorder.framework/Headers:
--------------------------------------------------------------------------------
1 | Versions/Current/Headers
--------------------------------------------------------------------------------
/Frameworks/ShortcutRecorder.framework/Resources:
--------------------------------------------------------------------------------
1 | Versions/Current/Resources
--------------------------------------------------------------------------------
/Frameworks/ShortcutRecorder.framework/ShortcutRecorder:
--------------------------------------------------------------------------------
1 | Versions/Current/ShortcutRecorder
--------------------------------------------------------------------------------
/Frameworks/ShortcutRecorder.framework/Versions/A/Headers/SRKeyCodeTransformer.h:
--------------------------------------------------------------------------------
1 | //
2 | // SRKeyCodeTransformer.h
3 | // ShortcutRecorder
4 | //
5 | // Copyright 2006-2007 Contributors. All rights reserved.
6 | //
7 | // License: BSD
8 | //
9 | // Contributors:
10 | // David Dauer
11 | // Jesper
12 | // Jamie Kirkpatrick
13 |
14 | #import
15 |
16 | @interface SRKeyCodeTransformer : NSValueTransformer {} @end
17 |
--------------------------------------------------------------------------------
/Frameworks/ShortcutRecorder.framework/Versions/A/Headers/SRRecorderControl.h:
--------------------------------------------------------------------------------
1 | //
2 | // SRRecorderControl.h
3 | // ShortcutRecorder
4 | //
5 | // Copyright 2006-2007 Contributors. All rights reserved.
6 | //
7 | // License: BSD
8 | //
9 | // Contributors:
10 | // David Dauer
11 | // Jesper
12 | // Jamie Kirkpatrick
13 |
14 | #import
15 | #import "SRRecorderCell.h"
16 |
17 | @interface SRRecorderControl : NSControl
18 | {
19 | IBOutlet id delegate;
20 | }
21 |
22 | #pragma mark *** Aesthetics ***
23 | - (BOOL)animates;
24 | - (void)setAnimates:(BOOL)an;
25 | - (SRRecorderStyle)style;
26 | - (void)setStyle:(SRRecorderStyle)nStyle;
27 |
28 | #pragma mark *** Delegate ***
29 | - (id)delegate;
30 | - (void)setDelegate:(id)aDelegate;
31 |
32 | #pragma mark *** Key Combination Control ***
33 |
34 | - (NSUInteger)allowedFlags;
35 | - (void)setAllowedFlags:(NSUInteger)flags;
36 |
37 | - (BOOL)allowsKeyOnly;
38 | - (void)setAllowsKeyOnly:(BOOL)nAllowsKeyOnly escapeKeysRecord:(BOOL)nEscapeKeysRecord;
39 | - (BOOL)escapeKeysRecord;
40 |
41 | - (BOOL)canCaptureGlobalHotKeys;
42 | - (void)setCanCaptureGlobalHotKeys:(BOOL)inState;
43 |
44 | - (NSUInteger)requiredFlags;
45 | - (void)setRequiredFlags:(NSUInteger)flags;
46 |
47 | - (KeyCombo)keyCombo;
48 | - (void)setKeyCombo:(KeyCombo)aKeyCombo;
49 |
50 | - (NSString *)keyChars;
51 | - (NSString *)keyCharsIgnoringModifiers;
52 |
53 | #pragma mark *** Autosave Control ***
54 |
55 | - (NSString *)autosaveName;
56 | - (void)setAutosaveName:(NSString *)aName;
57 |
58 | #pragma mark -
59 |
60 | // Returns the displayed key combination if set
61 | - (NSString *)keyComboString;
62 |
63 | #pragma mark *** Conversion Methods ***
64 |
65 | - (NSUInteger)cocoaToCarbonFlags:(NSUInteger)cocoaFlags;
66 | - (NSUInteger)carbonToCocoaFlags:(NSUInteger)carbonFlags;
67 |
68 | #pragma mark *** Binding Methods ***
69 |
70 | - (NSDictionary *)objectValue;
71 | - (void)setObjectValue:(NSDictionary *)shortcut;
72 |
73 | @end
74 |
75 | // Delegate Methods
76 | @interface NSObject (SRRecorderDelegate)
77 | - (BOOL)shortcutRecorder:(SRRecorderControl *)aRecorder isKeyCode:(NSInteger)keyCode andFlagsTaken:(NSUInteger)flags reason:(NSString **)aReason;
78 | - (void)shortcutRecorder:(SRRecorderControl *)aRecorder keyComboDidChange:(KeyCombo)newKeyCombo;
79 | @end
80 |
--------------------------------------------------------------------------------
/Frameworks/ShortcutRecorder.framework/Versions/A/Headers/SRValidator.h:
--------------------------------------------------------------------------------
1 | //
2 | // SRValidator.h
3 | // ShortcutRecorder
4 | //
5 | // Copyright 2006-2007 Contributors. All rights reserved.
6 | //
7 | // License: BSD
8 | //
9 | // Contributors:
10 | // David Dauer
11 | // Jesper
12 | // Jamie Kirkpatrick
13 |
14 | #import
15 |
16 | @interface SRValidator : NSObject {
17 | id delegate;
18 | }
19 |
20 | - (id) initWithDelegate:(id)theDelegate;
21 |
22 | - (BOOL) isKeyCode:(NSInteger)keyCode andFlagsTaken:(NSUInteger)flags error:(NSError **)error;
23 | - (BOOL) isKeyCode:(NSInteger)keyCode andFlags:(NSUInteger)flags takenInMenu:(NSMenu *)menu error:(NSError **)error;
24 |
25 | - (id) delegate;
26 | - (void) setDelegate: (id) theDelegate;
27 |
28 | @end
29 |
30 | #pragma mark -
31 |
32 | @interface NSObject( SRValidation )
33 | - (BOOL) shortcutValidator:(SRValidator *)validator isKeyCode:(NSInteger)keyCode andFlagsTaken:(NSUInteger)flags reason:(NSString **)aReason;
34 | @end
35 |
--------------------------------------------------------------------------------
/Frameworks/ShortcutRecorder.framework/Versions/A/Headers/SR_LeopardView.h:
--------------------------------------------------------------------------------
1 | //
2 | // SR_LeopardView.h
3 | // SR Leopard
4 | //
5 | // Created by Jesper on 2007-10-19.
6 | // Copyright 2007 __MyCompanyName__. All rights reserved.
7 | //
8 |
9 | #import
10 |
11 | @interface SR_LeopardView : NSView {
12 |
13 | }
14 |
15 | @end
--------------------------------------------------------------------------------
/Frameworks/ShortcutRecorder.framework/Versions/A/Headers/ShortcutRecorder.h:
--------------------------------------------------------------------------------
1 | //
2 | // ShortcutRecorder.h
3 | // ShortcutRecorder
4 | // - 10.5 version only; master framework header
5 | //
6 | // Copyright 2007 Contributors. All rights reserved.
7 | //
8 | // License: BSD
9 | //
10 | // Contributors to this file:
11 | // Jesper
12 |
13 | #import
14 | #import
15 | #import
16 | #import
17 | #import
18 |
--------------------------------------------------------------------------------
/Frameworks/ShortcutRecorder.framework/Versions/A/Resources/Info.plist:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | BuildMachineOSBuild
6 | 11C74
7 | CFBundleDevelopmentRegion
8 | English
9 | CFBundleExecutable
10 | ShortcutRecorder
11 | CFBundleIdentifier
12 | net.wafflesoftware.ShortcutRecorder.framework.Leopard
13 | CFBundleInfoDictionaryVersion
14 | 6.0
15 | CFBundlePackageType
16 | FMWK
17 | CFBundleSignature
18 | ????
19 | CFBundleVersion
20 | 1.0
21 | DTCompiler
22 | com.apple.compilers.llvm.clang.1_0
23 | DTPlatformBuild
24 | 4D199
25 | DTPlatformVersion
26 | GM
27 | DTSDKBuild
28 | 11C63
29 | DTSDKName
30 | macosx10.7
31 | DTXcode
32 | 0420
33 | DTXcodeBuild
34 | 4D199
35 |
36 |
37 |
--------------------------------------------------------------------------------
/Frameworks/ShortcutRecorder.framework/Versions/A/ShortcutRecorder:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/nfarina/feeds/c6ad6c68f53eca08ced40ed1e4b3d2d6ab99bea6/Frameworks/ShortcutRecorder.framework/Versions/A/ShortcutRecorder
--------------------------------------------------------------------------------
/Frameworks/ShortcutRecorder.framework/Versions/A/_CodeSignature/CodeResources:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | files
6 |
7 | Resources/Info.plist
8 |
9 | aPfAa0eSP5mWV7tSuwQMe8ba/w0=
10 |
11 |
12 | rules
13 |
14 | ^Resources/
15 |
16 | ^Resources/.*\.lproj/
17 |
18 | optional
19 |
20 | weight
21 | 1000
22 |
23 | ^Resources/.*\.lproj/locversion.plist$
24 |
25 | omit
26 |
27 | weight
28 | 1100
29 |
30 | ^version.plist$
31 |
32 |
33 |
34 |
35 |
--------------------------------------------------------------------------------
/Frameworks/ShortcutRecorder.framework/Versions/Current:
--------------------------------------------------------------------------------
1 | A
--------------------------------------------------------------------------------
/Frameworks/Sparkle.framework/Headers:
--------------------------------------------------------------------------------
1 | Versions/Current/Headers
--------------------------------------------------------------------------------
/Frameworks/Sparkle.framework/Resources:
--------------------------------------------------------------------------------
1 | Versions/Current/Resources
--------------------------------------------------------------------------------
/Frameworks/Sparkle.framework/Sparkle:
--------------------------------------------------------------------------------
1 | Versions/Current/Sparkle
--------------------------------------------------------------------------------
/Frameworks/Sparkle.framework/Versions/A/Headers/SUAppcast.h:
--------------------------------------------------------------------------------
1 | //
2 | // SUAppcast.h
3 | // Sparkle
4 | //
5 | // Created by Andy Matuschak on 3/12/06.
6 | // Copyright 2006 Andy Matuschak. All rights reserved.
7 | //
8 |
9 | #ifndef SUAPPCAST_H
10 | #define SUAPPCAST_H
11 |
12 | @class SUAppcastItem;
13 | @interface SUAppcast : NSObject {
14 | NSArray *items;
15 | NSString *userAgentString;
16 | id delegate;
17 | NSMutableData *incrementalData;
18 | }
19 |
20 | - (void)fetchAppcastFromURL:(NSURL *)url;
21 | - (void)setDelegate:delegate;
22 | - (void)setUserAgentString:(NSString *)userAgentString;
23 |
24 | - (NSArray *)items;
25 |
26 | @end
27 |
28 | @interface NSObject (SUAppcastDelegate)
29 | - (void)appcastDidFinishLoading:(SUAppcast *)appcast;
30 | - (void)appcast:(SUAppcast *)appcast failedToLoadWithError:(NSError *)error;
31 | @end
32 |
33 | #endif
34 |
--------------------------------------------------------------------------------
/Frameworks/Sparkle.framework/Versions/A/Headers/SUAppcastItem.h:
--------------------------------------------------------------------------------
1 | //
2 | // SUAppcastItem.h
3 | // Sparkle
4 | //
5 | // Created by Andy Matuschak on 3/12/06.
6 | // Copyright 2006 Andy Matuschak. All rights reserved.
7 | //
8 |
9 | #ifndef SUAPPCASTITEM_H
10 | #define SUAPPCASTITEM_H
11 |
12 | @interface SUAppcastItem : NSObject {
13 | NSString *title;
14 | NSDate *date;
15 | NSString *itemDescription;
16 |
17 | NSURL *releaseNotesURL;
18 |
19 | NSString *DSASignature;
20 | NSString *minimumSystemVersion;
21 |
22 | NSURL *fileURL;
23 | NSString *versionString;
24 | NSString *displayVersionString;
25 |
26 | NSDictionary *propertiesDictionary;
27 | }
28 |
29 | // Initializes with data from a dictionary provided by the RSS class.
30 | - initWithDictionary:(NSDictionary *)dict;
31 |
32 | - (NSString *)title;
33 | - (NSString *)versionString;
34 | - (NSString *)displayVersionString;
35 | - (NSDate *)date;
36 | - (NSString *)itemDescription;
37 | - (NSURL *)releaseNotesURL;
38 | - (NSURL *)fileURL;
39 | - (NSString *)DSASignature;
40 | - (NSString *)minimumSystemVersion;
41 |
42 | // Returns the dictionary provided in initWithDictionary; this might be useful later for extensions.
43 | - (NSDictionary *)propertiesDictionary;
44 |
45 | @end
46 |
47 | #endif
48 |
--------------------------------------------------------------------------------
/Frameworks/Sparkle.framework/Versions/A/Headers/SUVersionComparisonProtocol.h:
--------------------------------------------------------------------------------
1 | //
2 | // SUVersionComparisonProtocol.h
3 | // Sparkle
4 | //
5 | // Created by Andy Matuschak on 12/21/07.
6 | // Copyright 2007 Andy Matuschak. All rights reserved.
7 | //
8 |
9 | #ifndef SUVERSIONCOMPARISONPROTOCOL_H
10 | #define SUVERSIONCOMPARISONPROTOCOL_H
11 |
12 | /*!
13 | @protocol
14 | @abstract Implement this protocol to provide version comparison facilities for Sparkle.
15 | */
16 | @protocol SUVersionComparison
17 |
18 | /*!
19 | @method
20 | @abstract An abstract method to compare two version strings.
21 | @discussion Should return NSOrderedAscending if b > a, NSOrderedDescending if b < a, and NSOrderedSame if they are equivalent.
22 | */
23 | - (NSComparisonResult)compareVersion:(NSString *)versionA toVersion:(NSString *)versionB;
24 |
25 | @end
26 |
27 | #endif
28 |
--------------------------------------------------------------------------------
/Frameworks/Sparkle.framework/Versions/A/Headers/Sparkle.h:
--------------------------------------------------------------------------------
1 | //
2 | // Sparkle.h
3 | // Sparkle
4 | //
5 | // Created by Andy Matuschak on 3/16/06. (Modified by CDHW on 23/12/07)
6 | // Copyright 2006 Andy Matuschak. All rights reserved.
7 | //
8 |
9 | #ifndef SPARKLE_H
10 | #define SPARKLE_H
11 |
12 | // This list should include the shared headers. It doesn't matter if some of them aren't shared (unless
13 | // there are name-space collisions) so we can list all of them to start with:
14 |
15 | #import
16 |
17 | #import
18 | #import
19 | #import
20 |
21 | #endif
22 |
--------------------------------------------------------------------------------
/Frameworks/Sparkle.framework/Versions/A/Resources/Info.plist:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | CFBundleDevelopmentRegion
6 | en
7 | CFBundleExecutable
8 | Sparkle
9 | CFBundleIdentifier
10 | org.andymatuschak.Sparkle
11 | CFBundleInfoDictionaryVersion
12 | 6.0
13 | CFBundleName
14 | Sparkle
15 | CFBundlePackageType
16 | FMWK
17 | CFBundleShortVersionString
18 | 1.5 Beta 6
19 | CFBundleSignature
20 | ????
21 | CFBundleVersion
22 | 313
23 |
24 |
25 |
--------------------------------------------------------------------------------
/Frameworks/Sparkle.framework/Versions/A/Resources/License.txt:
--------------------------------------------------------------------------------
1 | Copyright (c) 2006 Andy Matuschak
2 |
3 | Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
4 |
5 | The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
6 |
7 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
--------------------------------------------------------------------------------
/Frameworks/Sparkle.framework/Versions/A/Resources/SUStatus.nib/classes.nib:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | IBClasses
6 |
7 |
8 | CLASS
9 | SUWindowController
10 | LANGUAGE
11 | ObjC
12 | SUPERCLASS
13 | NSWindowController
14 |
15 |
16 | CLASS
17 | NSApplication
18 | LANGUAGE
19 | ObjC
20 | SUPERCLASS
21 | NSResponder
22 |
23 |
24 | CLASS
25 | FirstResponder
26 | LANGUAGE
27 | ObjC
28 | SUPERCLASS
29 | NSObject
30 |
31 |
32 | CLASS
33 | NSObject
34 | LANGUAGE
35 | ObjC
36 |
37 |
38 | CLASS
39 | SUStatusController
40 | LANGUAGE
41 | ObjC
42 | OUTLETS
43 |
44 | actionButton
45 | NSButton
46 | progressBar
47 | NSProgressIndicator
48 |
49 | SUPERCLASS
50 | SUWindowController
51 |
52 |
53 | IBVersion
54 | 1
55 |
56 |
57 |
--------------------------------------------------------------------------------
/Frameworks/Sparkle.framework/Versions/A/Resources/SUStatus.nib/info.nib:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | IBFramework Version
6 | 670
7 | IBLastKnownRelativeProjectPath
8 | Sparkle.xcodeproj
9 | IBOldestOS
10 | 5
11 | IBOpenObjects
12 |
13 | 6
14 |
15 | IBSystem Version
16 | 10A96
17 | targetFramework
18 | IBCocoaFramework
19 |
20 |
21 |
--------------------------------------------------------------------------------
/Frameworks/Sparkle.framework/Versions/A/Resources/SUStatus.nib/keyedobjects.nib:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/nfarina/feeds/c6ad6c68f53eca08ced40ed1e4b3d2d6ab99bea6/Frameworks/Sparkle.framework/Versions/A/Resources/SUStatus.nib/keyedobjects.nib
--------------------------------------------------------------------------------
/Frameworks/Sparkle.framework/Versions/A/Resources/de.lproj/SUAutomaticUpdateAlert.nib/classes.nib:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | IBClasses
6 |
7 |
8 | CLASS
9 | SUWindowController
10 | LANGUAGE
11 | ObjC
12 | SUPERCLASS
13 | NSWindowController
14 |
15 |
16 | ACTIONS
17 |
18 | doNotInstall
19 | id
20 | installLater
21 | id
22 | installNow
23 | id
24 |
25 | CLASS
26 | SUAutomaticUpdateAlert
27 | LANGUAGE
28 | ObjC
29 | SUPERCLASS
30 | SUWindowController
31 |
32 |
33 | CLASS
34 | FirstResponder
35 | LANGUAGE
36 | ObjC
37 | SUPERCLASS
38 | NSObject
39 |
40 |
41 | CLASS
42 | NSObject
43 | LANGUAGE
44 | ObjC
45 |
46 |
47 | IBVersion
48 | 1
49 |
50 |
51 |
--------------------------------------------------------------------------------
/Frameworks/Sparkle.framework/Versions/A/Resources/de.lproj/SUAutomaticUpdateAlert.nib/info.nib:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | IBFramework Version
6 | 667
7 | IBLastKnownRelativeProjectPath
8 | ../Sparkle.xcodeproj
9 | IBOldestOS
10 | 5
11 | IBOpenObjects
12 |
13 | 6
14 |
15 | IBSystem Version
16 | 9D34
17 | targetFramework
18 | IBCocoaFramework
19 |
20 |
21 |
--------------------------------------------------------------------------------
/Frameworks/Sparkle.framework/Versions/A/Resources/de.lproj/SUAutomaticUpdateAlert.nib/keyedobjects.nib:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/nfarina/feeds/c6ad6c68f53eca08ced40ed1e4b3d2d6ab99bea6/Frameworks/Sparkle.framework/Versions/A/Resources/de.lproj/SUAutomaticUpdateAlert.nib/keyedobjects.nib
--------------------------------------------------------------------------------
/Frameworks/Sparkle.framework/Versions/A/Resources/de.lproj/SUUpdateAlert.nib/classes.nib:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | IBClasses
6 |
7 |
8 | CLASS
9 | SUWindowController
10 | LANGUAGE
11 | ObjC
12 | SUPERCLASS
13 | NSWindowController
14 |
15 |
16 | CLASS
17 | NSApplication
18 | LANGUAGE
19 | ObjC
20 | SUPERCLASS
21 | NSResponder
22 |
23 |
24 | ACTIONS
25 |
26 | installUpdate
27 | id
28 | remindMeLater
29 | id
30 | skipThisVersion
31 | id
32 |
33 | CLASS
34 | SUUpdateAlert
35 | LANGUAGE
36 | ObjC
37 | OUTLETS
38 |
39 | delegate
40 | id
41 | description
42 | NSTextField
43 | releaseNotesView
44 | WebView
45 |
46 | SUPERCLASS
47 | SUWindowController
48 |
49 |
50 | CLASS
51 | FirstResponder
52 | LANGUAGE
53 | ObjC
54 | SUPERCLASS
55 | NSObject
56 |
57 |
58 | CLASS
59 | NSObject
60 | LANGUAGE
61 | ObjC
62 |
63 |
64 | IBVersion
65 | 1
66 |
67 |
68 |
--------------------------------------------------------------------------------
/Frameworks/Sparkle.framework/Versions/A/Resources/de.lproj/SUUpdateAlert.nib/info.nib:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | IBFramework Version
6 | 667
7 | IBLastKnownRelativeProjectPath
8 | ../Sparkle.xcodeproj
9 | IBOldestOS
10 | 5
11 | IBOpenObjects
12 |
13 | 6
14 |
15 | IBSystem Version
16 | 9D34
17 | targetFramework
18 | IBCocoaFramework
19 |
20 |
21 |
--------------------------------------------------------------------------------
/Frameworks/Sparkle.framework/Versions/A/Resources/de.lproj/SUUpdateAlert.nib/keyedobjects.nib:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/nfarina/feeds/c6ad6c68f53eca08ced40ed1e4b3d2d6ab99bea6/Frameworks/Sparkle.framework/Versions/A/Resources/de.lproj/SUUpdateAlert.nib/keyedobjects.nib
--------------------------------------------------------------------------------
/Frameworks/Sparkle.framework/Versions/A/Resources/de.lproj/SUUpdatePermissionPrompt.nib/classes.nib:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | IBClasses
6 |
7 |
8 | CLASS
9 | SUWindowController
10 | LANGUAGE
11 | ObjC
12 | SUPERCLASS
13 | NSWindowController
14 |
15 |
16 | ACTIONS
17 |
18 | finishPrompt
19 | id
20 | toggleMoreInfo
21 | id
22 |
23 | CLASS
24 | SUUpdatePermissionPrompt
25 | LANGUAGE
26 | ObjC
27 | OUTLETS
28 |
29 | delegate
30 | id
31 | descriptionTextField
32 | NSTextField
33 | moreInfoButton
34 | NSButton
35 | moreInfoView
36 | NSView
37 |
38 | SUPERCLASS
39 | SUWindowController
40 |
41 |
42 | CLASS
43 | FirstResponder
44 | LANGUAGE
45 | ObjC
46 | SUPERCLASS
47 | NSObject
48 |
49 |
50 | CLASS
51 | NSObject
52 | LANGUAGE
53 | ObjC
54 |
55 |
56 | IBVersion
57 | 1
58 |
59 |
60 |
--------------------------------------------------------------------------------
/Frameworks/Sparkle.framework/Versions/A/Resources/de.lproj/SUUpdatePermissionPrompt.nib/info.nib:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | IBFramework Version
6 | 667
7 | IBLastKnownRelativeProjectPath
8 | ../Sparkle.xcodeproj
9 | IBOldestOS
10 | 5
11 | IBOpenObjects
12 |
13 | 6
14 |
15 | IBSystem Version
16 | 9D34
17 | targetFramework
18 | IBCocoaFramework
19 |
20 |
21 |
--------------------------------------------------------------------------------
/Frameworks/Sparkle.framework/Versions/A/Resources/de.lproj/SUUpdatePermissionPrompt.nib/keyedobjects.nib:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/nfarina/feeds/c6ad6c68f53eca08ced40ed1e4b3d2d6ab99bea6/Frameworks/Sparkle.framework/Versions/A/Resources/de.lproj/SUUpdatePermissionPrompt.nib/keyedobjects.nib
--------------------------------------------------------------------------------
/Frameworks/Sparkle.framework/Versions/A/Resources/de.lproj/Sparkle.strings:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/nfarina/feeds/c6ad6c68f53eca08ced40ed1e4b3d2d6ab99bea6/Frameworks/Sparkle.framework/Versions/A/Resources/de.lproj/Sparkle.strings
--------------------------------------------------------------------------------
/Frameworks/Sparkle.framework/Versions/A/Resources/en.lproj/SUAutomaticUpdateAlert.nib/classes.nib:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | IBClasses
6 |
7 |
8 | CLASS
9 | SUWindowController
10 | LANGUAGE
11 | ObjC
12 | SUPERCLASS
13 | NSWindowController
14 |
15 |
16 | ACTIONS
17 |
18 | doNotInstall
19 | id
20 | installLater
21 | id
22 | installNow
23 | id
24 |
25 | CLASS
26 | SUAutomaticUpdateAlert
27 | LANGUAGE
28 | ObjC
29 | SUPERCLASS
30 | SUWindowController
31 |
32 |
33 | CLASS
34 | FirstResponder
35 | LANGUAGE
36 | ObjC
37 | SUPERCLASS
38 | NSObject
39 |
40 |
41 | CLASS
42 | NSObject
43 | LANGUAGE
44 | ObjC
45 |
46 |
47 | IBVersion
48 | 1
49 |
50 |
51 |
--------------------------------------------------------------------------------
/Frameworks/Sparkle.framework/Versions/A/Resources/en.lproj/SUAutomaticUpdateAlert.nib/info.nib:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | IBFramework Version
6 | 658
7 | IBLastKnownRelativeProjectPath
8 | ../Sparkle.xcodeproj
9 | IBOldestOS
10 | 5
11 | IBOpenObjects
12 |
13 | 6
14 |
15 | IBSystem Version
16 | 9C7010
17 | targetFramework
18 | IBCocoaFramework
19 |
20 |
21 |
--------------------------------------------------------------------------------
/Frameworks/Sparkle.framework/Versions/A/Resources/en.lproj/SUAutomaticUpdateAlert.nib/keyedobjects.nib:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/nfarina/feeds/c6ad6c68f53eca08ced40ed1e4b3d2d6ab99bea6/Frameworks/Sparkle.framework/Versions/A/Resources/en.lproj/SUAutomaticUpdateAlert.nib/keyedobjects.nib
--------------------------------------------------------------------------------
/Frameworks/Sparkle.framework/Versions/A/Resources/en.lproj/SUUpdateAlert.nib/classes.nib:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | IBClasses
6 |
7 |
8 | CLASS
9 | SUWindowController
10 | LANGUAGE
11 | ObjC
12 | SUPERCLASS
13 | NSWindowController
14 |
15 |
16 | CLASS
17 | NSApplication
18 | LANGUAGE
19 | ObjC
20 | SUPERCLASS
21 | NSResponder
22 |
23 |
24 | ACTIONS
25 |
26 | installUpdate
27 | id
28 | remindMeLater
29 | id
30 | skipThisVersion
31 | id
32 |
33 | CLASS
34 | SUUpdateAlert
35 | LANGUAGE
36 | ObjC
37 | OUTLETS
38 |
39 | delegate
40 | id
41 | description
42 | NSTextField
43 | releaseNotesView
44 | WebView
45 |
46 | SUPERCLASS
47 | SUWindowController
48 |
49 |
50 | CLASS
51 | FirstResponder
52 | LANGUAGE
53 | ObjC
54 | SUPERCLASS
55 | NSObject
56 |
57 |
58 | CLASS
59 | NSObject
60 | LANGUAGE
61 | ObjC
62 |
63 |
64 | IBVersion
65 | 1
66 |
67 |
68 |
--------------------------------------------------------------------------------
/Frameworks/Sparkle.framework/Versions/A/Resources/en.lproj/SUUpdateAlert.nib/info.nib:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | IBFramework Version
6 | 670
7 | IBLastKnownRelativeProjectPath
8 | ../Sparkle.xcodeproj
9 | IBOldestOS
10 | 5
11 | IBOpenObjects
12 |
13 | 18
14 |
15 | IBSystem Version
16 | 10A96
17 | targetFramework
18 | IBCocoaFramework
19 |
20 |
21 |
--------------------------------------------------------------------------------
/Frameworks/Sparkle.framework/Versions/A/Resources/en.lproj/SUUpdateAlert.nib/keyedobjects.nib:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/nfarina/feeds/c6ad6c68f53eca08ced40ed1e4b3d2d6ab99bea6/Frameworks/Sparkle.framework/Versions/A/Resources/en.lproj/SUUpdateAlert.nib/keyedobjects.nib
--------------------------------------------------------------------------------
/Frameworks/Sparkle.framework/Versions/A/Resources/en.lproj/SUUpdatePermissionPrompt.nib/classes.nib:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | IBClasses
6 |
7 |
8 | CLASS
9 | SUWindowController
10 | LANGUAGE
11 | ObjC
12 | SUPERCLASS
13 | NSWindowController
14 |
15 |
16 | ACTIONS
17 |
18 | finishPrompt
19 | id
20 | toggleMoreInfo
21 | id
22 |
23 | CLASS
24 | SUUpdatePermissionPrompt
25 | LANGUAGE
26 | ObjC
27 | OUTLETS
28 |
29 | delegate
30 | id
31 | descriptionTextField
32 | NSTextField
33 | moreInfoButton
34 | NSButton
35 | moreInfoView
36 | NSView
37 |
38 | SUPERCLASS
39 | SUWindowController
40 |
41 |
42 | CLASS
43 | FirstResponder
44 | LANGUAGE
45 | ObjC
46 | SUPERCLASS
47 | NSObject
48 |
49 |
50 | CLASS
51 | NSObject
52 | LANGUAGE
53 | ObjC
54 |
55 |
56 | IBVersion
57 | 1
58 |
59 |
60 |
--------------------------------------------------------------------------------
/Frameworks/Sparkle.framework/Versions/A/Resources/en.lproj/SUUpdatePermissionPrompt.nib/info.nib:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | IBFramework Version
6 | 670
7 | IBLastKnownRelativeProjectPath
8 | ../Sparkle.xcodeproj
9 | IBOldestOS
10 | 5
11 | IBOpenObjects
12 |
13 | 6
14 | 41
15 |
16 | IBSystem Version
17 | 10A96
18 | targetFramework
19 | IBCocoaFramework
20 |
21 |
22 |
--------------------------------------------------------------------------------
/Frameworks/Sparkle.framework/Versions/A/Resources/en.lproj/SUUpdatePermissionPrompt.nib/keyedobjects.nib:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/nfarina/feeds/c6ad6c68f53eca08ced40ed1e4b3d2d6ab99bea6/Frameworks/Sparkle.framework/Versions/A/Resources/en.lproj/SUUpdatePermissionPrompt.nib/keyedobjects.nib
--------------------------------------------------------------------------------
/Frameworks/Sparkle.framework/Versions/A/Resources/en.lproj/Sparkle.strings:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/nfarina/feeds/c6ad6c68f53eca08ced40ed1e4b3d2d6ab99bea6/Frameworks/Sparkle.framework/Versions/A/Resources/en.lproj/Sparkle.strings
--------------------------------------------------------------------------------
/Frameworks/Sparkle.framework/Versions/A/Resources/es.lproj/SUAutomaticUpdateAlert.nib/classes.nib:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | IBClasses
6 |
7 |
8 | CLASS
9 | SUWindowController
10 | LANGUAGE
11 | ObjC
12 | SUPERCLASS
13 | NSWindowController
14 |
15 |
16 | ACTIONS
17 |
18 | doNotInstall
19 | id
20 | installLater
21 | id
22 | installNow
23 | id
24 |
25 | CLASS
26 | SUAutomaticUpdateAlert
27 | LANGUAGE
28 | ObjC
29 | SUPERCLASS
30 | SUWindowController
31 |
32 |
33 | CLASS
34 | FirstResponder
35 | LANGUAGE
36 | ObjC
37 | SUPERCLASS
38 | NSObject
39 |
40 |
41 | CLASS
42 | NSObject
43 | LANGUAGE
44 | ObjC
45 |
46 |
47 | IBVersion
48 | 1
49 |
50 |
51 |
--------------------------------------------------------------------------------
/Frameworks/Sparkle.framework/Versions/A/Resources/es.lproj/SUAutomaticUpdateAlert.nib/info.nib:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | IBFramework Version
6 | 667
7 | IBLastKnownRelativeProjectPath
8 | ../Sparkle.xcodeproj
9 | IBOldestOS
10 | 5
11 | IBOpenObjects
12 |
13 | 6
14 |
15 | IBSystem Version
16 | 9D34
17 | targetFramework
18 | IBCocoaFramework
19 |
20 |
21 |
--------------------------------------------------------------------------------
/Frameworks/Sparkle.framework/Versions/A/Resources/es.lproj/SUAutomaticUpdateAlert.nib/keyedobjects.nib:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/nfarina/feeds/c6ad6c68f53eca08ced40ed1e4b3d2d6ab99bea6/Frameworks/Sparkle.framework/Versions/A/Resources/es.lproj/SUAutomaticUpdateAlert.nib/keyedobjects.nib
--------------------------------------------------------------------------------
/Frameworks/Sparkle.framework/Versions/A/Resources/es.lproj/SUUpdateAlert.nib/classes.nib:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | IBClasses
6 |
7 |
8 | CLASS
9 | SUWindowController
10 | LANGUAGE
11 | ObjC
12 | SUPERCLASS
13 | NSWindowController
14 |
15 |
16 | CLASS
17 | NSApplication
18 | LANGUAGE
19 | ObjC
20 | SUPERCLASS
21 | NSResponder
22 |
23 |
24 | ACTIONS
25 |
26 | installUpdate
27 | id
28 | remindMeLater
29 | id
30 | skipThisVersion
31 | id
32 |
33 | CLASS
34 | SUUpdateAlert
35 | LANGUAGE
36 | ObjC
37 | OUTLETS
38 |
39 | delegate
40 | id
41 | description
42 | NSTextField
43 | releaseNotesView
44 | WebView
45 |
46 | SUPERCLASS
47 | SUWindowController
48 |
49 |
50 | CLASS
51 | FirstResponder
52 | LANGUAGE
53 | ObjC
54 | SUPERCLASS
55 | NSObject
56 |
57 |
58 | CLASS
59 | NSObject
60 | LANGUAGE
61 | ObjC
62 |
63 |
64 | IBVersion
65 | 1
66 |
67 |
68 |
--------------------------------------------------------------------------------
/Frameworks/Sparkle.framework/Versions/A/Resources/es.lproj/SUUpdateAlert.nib/info.nib:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | IBFramework Version
6 | 667
7 | IBLastKnownRelativeProjectPath
8 | ../Sparkle.xcodeproj
9 | IBOldestOS
10 | 5
11 | IBOpenObjects
12 |
13 | 6
14 |
15 | IBSystem Version
16 | 9D34
17 | targetFramework
18 | IBCocoaFramework
19 |
20 |
21 |
--------------------------------------------------------------------------------
/Frameworks/Sparkle.framework/Versions/A/Resources/es.lproj/SUUpdateAlert.nib/keyedobjects.nib:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/nfarina/feeds/c6ad6c68f53eca08ced40ed1e4b3d2d6ab99bea6/Frameworks/Sparkle.framework/Versions/A/Resources/es.lproj/SUUpdateAlert.nib/keyedobjects.nib
--------------------------------------------------------------------------------
/Frameworks/Sparkle.framework/Versions/A/Resources/es.lproj/SUUpdatePermissionPrompt.nib/classes.nib:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | IBClasses
6 |
7 |
8 | CLASS
9 | SUWindowController
10 | LANGUAGE
11 | ObjC
12 | SUPERCLASS
13 | NSWindowController
14 |
15 |
16 | ACTIONS
17 |
18 | finishPrompt
19 | id
20 | toggleMoreInfo
21 | id
22 |
23 | CLASS
24 | SUUpdatePermissionPrompt
25 | LANGUAGE
26 | ObjC
27 | OUTLETS
28 |
29 | delegate
30 | id
31 | descriptionTextField
32 | NSTextField
33 | moreInfoButton
34 | NSButton
35 | moreInfoView
36 | NSView
37 |
38 | SUPERCLASS
39 | SUWindowController
40 |
41 |
42 | CLASS
43 | FirstResponder
44 | LANGUAGE
45 | ObjC
46 | SUPERCLASS
47 | NSObject
48 |
49 |
50 | CLASS
51 | NSObject
52 | LANGUAGE
53 | ObjC
54 |
55 |
56 | IBVersion
57 | 1
58 |
59 |
60 |
--------------------------------------------------------------------------------
/Frameworks/Sparkle.framework/Versions/A/Resources/es.lproj/SUUpdatePermissionPrompt.nib/info.nib:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | IBFramework Version
6 | 667
7 | IBLastKnownRelativeProjectPath
8 | ../../Sparkle.xcodeproj
9 | IBOldestOS
10 | 5
11 | IBOpenObjects
12 |
13 | 6
14 |
15 | IBSystem Version
16 | 9D34
17 | targetFramework
18 | IBCocoaFramework
19 |
20 |
21 |
--------------------------------------------------------------------------------
/Frameworks/Sparkle.framework/Versions/A/Resources/es.lproj/SUUpdatePermissionPrompt.nib/keyedobjects.nib:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/nfarina/feeds/c6ad6c68f53eca08ced40ed1e4b3d2d6ab99bea6/Frameworks/Sparkle.framework/Versions/A/Resources/es.lproj/SUUpdatePermissionPrompt.nib/keyedobjects.nib
--------------------------------------------------------------------------------
/Frameworks/Sparkle.framework/Versions/A/Resources/es.lproj/Sparkle.strings:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/nfarina/feeds/c6ad6c68f53eca08ced40ed1e4b3d2d6ab99bea6/Frameworks/Sparkle.framework/Versions/A/Resources/es.lproj/Sparkle.strings
--------------------------------------------------------------------------------
/Frameworks/Sparkle.framework/Versions/A/Resources/fr.lproj/SUAutomaticUpdateAlert.nib/classes.nib:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | IBClasses
6 |
7 |
8 | CLASS
9 | SUWindowController
10 | LANGUAGE
11 | ObjC
12 | SUPERCLASS
13 | NSWindowController
14 |
15 |
16 | ACTIONS
17 |
18 | doNotInstall
19 | id
20 | installLater
21 | id
22 | installNow
23 | id
24 |
25 | CLASS
26 | SUAutomaticUpdateAlert
27 | LANGUAGE
28 | ObjC
29 | SUPERCLASS
30 | SUWindowController
31 |
32 |
33 | CLASS
34 | FirstResponder
35 | LANGUAGE
36 | ObjC
37 | SUPERCLASS
38 | NSObject
39 |
40 |
41 | CLASS
42 | NSObject
43 | LANGUAGE
44 | ObjC
45 |
46 |
47 | IBVersion
48 | 1
49 |
50 |
51 |
--------------------------------------------------------------------------------
/Frameworks/Sparkle.framework/Versions/A/Resources/fr.lproj/SUAutomaticUpdateAlert.nib/info.nib:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | IBFramework Version
6 | 629
7 | IBOldestOS
8 | 5
9 | IBOpenObjects
10 |
11 | IBSystem Version
12 | 9D34
13 | targetFramework
14 | IBCocoaFramework
15 |
16 |
17 |
--------------------------------------------------------------------------------
/Frameworks/Sparkle.framework/Versions/A/Resources/fr.lproj/SUAutomaticUpdateAlert.nib/keyedobjects.nib:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/nfarina/feeds/c6ad6c68f53eca08ced40ed1e4b3d2d6ab99bea6/Frameworks/Sparkle.framework/Versions/A/Resources/fr.lproj/SUAutomaticUpdateAlert.nib/keyedobjects.nib
--------------------------------------------------------------------------------
/Frameworks/Sparkle.framework/Versions/A/Resources/fr.lproj/SUUpdateAlert.nib/classes.nib:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | IBClasses
6 |
7 |
8 | CLASS
9 | SUWindowController
10 | LANGUAGE
11 | ObjC
12 | SUPERCLASS
13 | NSWindowController
14 |
15 |
16 | CLASS
17 | NSApplication
18 | LANGUAGE
19 | ObjC
20 | SUPERCLASS
21 | NSResponder
22 |
23 |
24 | ACTIONS
25 |
26 | installUpdate
27 | id
28 | remindMeLater
29 | id
30 | skipThisVersion
31 | id
32 |
33 | CLASS
34 | SUUpdateAlert
35 | LANGUAGE
36 | ObjC
37 | OUTLETS
38 |
39 | delegate
40 | id
41 | description
42 | NSTextField
43 | releaseNotesView
44 | WebView
45 |
46 | SUPERCLASS
47 | SUWindowController
48 |
49 |
50 | CLASS
51 | FirstResponder
52 | LANGUAGE
53 | ObjC
54 | SUPERCLASS
55 | NSObject
56 |
57 |
58 | CLASS
59 | NSObject
60 | LANGUAGE
61 | ObjC
62 |
63 |
64 | IBVersion
65 | 1
66 |
67 |
68 |
--------------------------------------------------------------------------------
/Frameworks/Sparkle.framework/Versions/A/Resources/fr.lproj/SUUpdateAlert.nib/info.nib:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | IBFramework Version
6 | 629
7 | IBOldestOS
8 | 5
9 | IBOpenObjects
10 |
11 | IBSystem Version
12 | 9E17
13 | targetFramework
14 | IBCocoaFramework
15 |
16 |
17 |
--------------------------------------------------------------------------------
/Frameworks/Sparkle.framework/Versions/A/Resources/fr.lproj/SUUpdateAlert.nib/keyedobjects.nib:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/nfarina/feeds/c6ad6c68f53eca08ced40ed1e4b3d2d6ab99bea6/Frameworks/Sparkle.framework/Versions/A/Resources/fr.lproj/SUUpdateAlert.nib/keyedobjects.nib
--------------------------------------------------------------------------------
/Frameworks/Sparkle.framework/Versions/A/Resources/fr.lproj/SUUpdatePermissionPrompt.nib/classes.nib:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | IBClasses
6 |
7 |
8 | CLASS
9 | SUWindowController
10 | LANGUAGE
11 | ObjC
12 | SUPERCLASS
13 | NSWindowController
14 |
15 |
16 | ACTIONS
17 |
18 | finishPrompt
19 | id
20 | toggleMoreInfo
21 | id
22 |
23 | CLASS
24 | SUUpdatePermissionPrompt
25 | LANGUAGE
26 | ObjC
27 | OUTLETS
28 |
29 | delegate
30 | id
31 | descriptionTextField
32 | NSTextField
33 | moreInfoButton
34 | NSButton
35 | moreInfoView
36 | NSView
37 |
38 | SUPERCLASS
39 | SUWindowController
40 |
41 |
42 | CLASS
43 | FirstResponder
44 | LANGUAGE
45 | ObjC
46 | SUPERCLASS
47 | NSObject
48 |
49 |
50 | CLASS
51 | NSObject
52 | LANGUAGE
53 | ObjC
54 |
55 |
56 | IBVersion
57 | 1
58 |
59 |
60 |
--------------------------------------------------------------------------------
/Frameworks/Sparkle.framework/Versions/A/Resources/fr.lproj/SUUpdatePermissionPrompt.nib/info.nib:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | IBFramework Version
6 | 629
7 | IBOldestOS
8 | 5
9 | IBOpenObjects
10 |
11 | IBSystem Version
12 | 9E17
13 | targetFramework
14 | IBCocoaFramework
15 |
16 |
17 |
--------------------------------------------------------------------------------
/Frameworks/Sparkle.framework/Versions/A/Resources/fr.lproj/SUUpdatePermissionPrompt.nib/keyedobjects.nib:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/nfarina/feeds/c6ad6c68f53eca08ced40ed1e4b3d2d6ab99bea6/Frameworks/Sparkle.framework/Versions/A/Resources/fr.lproj/SUUpdatePermissionPrompt.nib/keyedobjects.nib
--------------------------------------------------------------------------------
/Frameworks/Sparkle.framework/Versions/A/Resources/fr.lproj/Sparkle.strings:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/nfarina/feeds/c6ad6c68f53eca08ced40ed1e4b3d2d6ab99bea6/Frameworks/Sparkle.framework/Versions/A/Resources/fr.lproj/Sparkle.strings
--------------------------------------------------------------------------------
/Frameworks/Sparkle.framework/Versions/A/Resources/fr.lproj/fr.lproj:
--------------------------------------------------------------------------------
1 | /Users/andym/Development/Build Products/Release/Sparkle.framework/Resources/fr.lproj
--------------------------------------------------------------------------------
/Frameworks/Sparkle.framework/Versions/A/Resources/fr_CA.lproj:
--------------------------------------------------------------------------------
1 | /Users/andym/Development/Build Products/Release/Sparkle.framework/Resources/fr.lproj
--------------------------------------------------------------------------------
/Frameworks/Sparkle.framework/Versions/A/Resources/it.lproj/SUAutomaticUpdateAlert.nib/classes.nib:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | IBClasses
6 |
7 |
8 | CLASS
9 | SUWindowController
10 | LANGUAGE
11 | ObjC
12 | SUPERCLASS
13 | NSWindowController
14 |
15 |
16 | ACTIONS
17 |
18 | doNotInstall
19 | id
20 | installLater
21 | id
22 | installNow
23 | id
24 |
25 | CLASS
26 | SUAutomaticUpdateAlert
27 | LANGUAGE
28 | ObjC
29 | SUPERCLASS
30 | SUWindowController
31 |
32 |
33 | CLASS
34 | FirstResponder
35 | LANGUAGE
36 | ObjC
37 | SUPERCLASS
38 | NSObject
39 |
40 |
41 | CLASS
42 | NSObject
43 | LANGUAGE
44 | ObjC
45 |
46 |
47 | IBVersion
48 | 1
49 |
50 |
51 |
--------------------------------------------------------------------------------
/Frameworks/Sparkle.framework/Versions/A/Resources/it.lproj/SUAutomaticUpdateAlert.nib/info.nib:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | IBFramework Version
6 | 667
7 | IBLastKnownRelativeProjectPath
8 | ../Sparkle.xcodeproj
9 | IBOldestOS
10 | 5
11 | IBOpenObjects
12 |
13 | 6
14 |
15 | IBSystem Version
16 | 9D34
17 | targetFramework
18 | IBCocoaFramework
19 |
20 |
21 |
--------------------------------------------------------------------------------
/Frameworks/Sparkle.framework/Versions/A/Resources/it.lproj/SUAutomaticUpdateAlert.nib/keyedobjects.nib:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/nfarina/feeds/c6ad6c68f53eca08ced40ed1e4b3d2d6ab99bea6/Frameworks/Sparkle.framework/Versions/A/Resources/it.lproj/SUAutomaticUpdateAlert.nib/keyedobjects.nib
--------------------------------------------------------------------------------
/Frameworks/Sparkle.framework/Versions/A/Resources/it.lproj/SUUpdateAlert.nib/classes.nib:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | IBClasses
6 |
7 |
8 | CLASS
9 | SUWindowController
10 | LANGUAGE
11 | ObjC
12 | SUPERCLASS
13 | NSWindowController
14 |
15 |
16 | CLASS
17 | NSApplication
18 | LANGUAGE
19 | ObjC
20 | SUPERCLASS
21 | NSResponder
22 |
23 |
24 | ACTIONS
25 |
26 | installUpdate
27 | id
28 | remindMeLater
29 | id
30 | skipThisVersion
31 | id
32 |
33 | CLASS
34 | SUUpdateAlert
35 | LANGUAGE
36 | ObjC
37 | OUTLETS
38 |
39 | delegate
40 | id
41 | description
42 | NSTextField
43 | releaseNotesView
44 | WebView
45 |
46 | SUPERCLASS
47 | SUWindowController
48 |
49 |
50 | CLASS
51 | FirstResponder
52 | LANGUAGE
53 | ObjC
54 | SUPERCLASS
55 | NSObject
56 |
57 |
58 | CLASS
59 | NSObject
60 | LANGUAGE
61 | ObjC
62 |
63 |
64 | IBVersion
65 | 1
66 |
67 |
68 |
--------------------------------------------------------------------------------
/Frameworks/Sparkle.framework/Versions/A/Resources/it.lproj/SUUpdateAlert.nib/info.nib:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | IBFramework Version
6 | 667
7 | IBLastKnownRelativeProjectPath
8 | ../Sparkle.xcodeproj
9 | IBOldestOS
10 | 5
11 | IBOpenObjects
12 |
13 | 6
14 |
15 | IBSystem Version
16 | 9D34
17 | targetFramework
18 | IBCocoaFramework
19 |
20 |
21 |
--------------------------------------------------------------------------------
/Frameworks/Sparkle.framework/Versions/A/Resources/it.lproj/SUUpdateAlert.nib/keyedobjects.nib:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/nfarina/feeds/c6ad6c68f53eca08ced40ed1e4b3d2d6ab99bea6/Frameworks/Sparkle.framework/Versions/A/Resources/it.lproj/SUUpdateAlert.nib/keyedobjects.nib
--------------------------------------------------------------------------------
/Frameworks/Sparkle.framework/Versions/A/Resources/it.lproj/SUUpdatePermissionPrompt.nib/classes.nib:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | IBClasses
6 |
7 |
8 | CLASS
9 | SUWindowController
10 | LANGUAGE
11 | ObjC
12 | SUPERCLASS
13 | NSWindowController
14 |
15 |
16 | ACTIONS
17 |
18 | finishPrompt
19 | id
20 | toggleMoreInfo
21 | id
22 |
23 | CLASS
24 | SUUpdatePermissionPrompt
25 | LANGUAGE
26 | ObjC
27 | OUTLETS
28 |
29 | delegate
30 | id
31 | descriptionTextField
32 | NSTextField
33 | moreInfoButton
34 | NSButton
35 | moreInfoView
36 | NSView
37 |
38 | SUPERCLASS
39 | SUWindowController
40 |
41 |
42 | CLASS
43 | FirstResponder
44 | LANGUAGE
45 | ObjC
46 | SUPERCLASS
47 | NSObject
48 |
49 |
50 | CLASS
51 | NSObject
52 | LANGUAGE
53 | ObjC
54 |
55 |
56 | IBVersion
57 | 1
58 |
59 |
60 |
--------------------------------------------------------------------------------
/Frameworks/Sparkle.framework/Versions/A/Resources/it.lproj/SUUpdatePermissionPrompt.nib/info.nib:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | IBFramework Version
6 | 667
7 | IBLastKnownRelativeProjectPath
8 | ../Sparkle.xcodeproj
9 | IBOldestOS
10 | 5
11 | IBOpenObjects
12 |
13 | 5
14 |
15 | IBSystem Version
16 | 9D34
17 | targetFramework
18 | IBCocoaFramework
19 |
20 |
21 |
--------------------------------------------------------------------------------
/Frameworks/Sparkle.framework/Versions/A/Resources/it.lproj/SUUpdatePermissionPrompt.nib/keyedobjects.nib:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/nfarina/feeds/c6ad6c68f53eca08ced40ed1e4b3d2d6ab99bea6/Frameworks/Sparkle.framework/Versions/A/Resources/it.lproj/SUUpdatePermissionPrompt.nib/keyedobjects.nib
--------------------------------------------------------------------------------
/Frameworks/Sparkle.framework/Versions/A/Resources/it.lproj/Sparkle.strings:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/nfarina/feeds/c6ad6c68f53eca08ced40ed1e4b3d2d6ab99bea6/Frameworks/Sparkle.framework/Versions/A/Resources/it.lproj/Sparkle.strings
--------------------------------------------------------------------------------
/Frameworks/Sparkle.framework/Versions/A/Resources/nl.lproj/SUAutomaticUpdateAlert.nib/classes.nib:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | IBClasses
6 |
7 |
8 | CLASS
9 | SUWindowController
10 | LANGUAGE
11 | ObjC
12 | SUPERCLASS
13 | NSWindowController
14 |
15 |
16 | ACTIONS
17 |
18 | doNotInstall
19 | id
20 | installLater
21 | id
22 | installNow
23 | id
24 |
25 | CLASS
26 | SUAutomaticUpdateAlert
27 | LANGUAGE
28 | ObjC
29 | SUPERCLASS
30 | SUWindowController
31 |
32 |
33 | CLASS
34 | FirstResponder
35 | LANGUAGE
36 | ObjC
37 | SUPERCLASS
38 | NSObject
39 |
40 |
41 | CLASS
42 | NSObject
43 | LANGUAGE
44 | ObjC
45 |
46 |
47 | IBVersion
48 | 1
49 |
50 |
51 |
--------------------------------------------------------------------------------
/Frameworks/Sparkle.framework/Versions/A/Resources/nl.lproj/SUAutomaticUpdateAlert.nib/info.nib:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | IBFramework Version
6 | 629
7 | IBOldestOS
8 | 5
9 | IBOpenObjects
10 |
11 | 6
12 |
13 | IBSystem Version
14 | 9D34
15 | targetFramework
16 | IBCocoaFramework
17 |
18 |
19 |
--------------------------------------------------------------------------------
/Frameworks/Sparkle.framework/Versions/A/Resources/nl.lproj/SUAutomaticUpdateAlert.nib/keyedobjects.nib:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/nfarina/feeds/c6ad6c68f53eca08ced40ed1e4b3d2d6ab99bea6/Frameworks/Sparkle.framework/Versions/A/Resources/nl.lproj/SUAutomaticUpdateAlert.nib/keyedobjects.nib
--------------------------------------------------------------------------------
/Frameworks/Sparkle.framework/Versions/A/Resources/nl.lproj/SUUpdateAlert.nib/classes.nib:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | IBClasses
6 |
7 |
8 | CLASS
9 | SUWindowController
10 | LANGUAGE
11 | ObjC
12 | SUPERCLASS
13 | NSWindowController
14 |
15 |
16 | CLASS
17 | NSApplication
18 | LANGUAGE
19 | ObjC
20 | SUPERCLASS
21 | NSResponder
22 |
23 |
24 | ACTIONS
25 |
26 | installUpdate
27 | id
28 | remindMeLater
29 | id
30 | skipThisVersion
31 | id
32 |
33 | CLASS
34 | SUUpdateAlert
35 | LANGUAGE
36 | ObjC
37 | OUTLETS
38 |
39 | delegate
40 | id
41 | description
42 | NSTextField
43 | releaseNotesView
44 | WebView
45 |
46 | SUPERCLASS
47 | SUWindowController
48 |
49 |
50 | CLASS
51 | FirstResponder
52 | LANGUAGE
53 | ObjC
54 | SUPERCLASS
55 | NSObject
56 |
57 |
58 | CLASS
59 | NSObject
60 | LANGUAGE
61 | ObjC
62 |
63 |
64 | IBVersion
65 | 1
66 |
67 |
68 |
--------------------------------------------------------------------------------
/Frameworks/Sparkle.framework/Versions/A/Resources/nl.lproj/SUUpdateAlert.nib/info.nib:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | IBFramework Version
6 | 629
7 | IBOldestOS
8 | 5
9 | IBOpenObjects
10 |
11 | IBSystem Version
12 | 9E17
13 | targetFramework
14 | IBCocoaFramework
15 |
16 |
17 |
--------------------------------------------------------------------------------
/Frameworks/Sparkle.framework/Versions/A/Resources/nl.lproj/SUUpdateAlert.nib/keyedobjects.nib:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/nfarina/feeds/c6ad6c68f53eca08ced40ed1e4b3d2d6ab99bea6/Frameworks/Sparkle.framework/Versions/A/Resources/nl.lproj/SUUpdateAlert.nib/keyedobjects.nib
--------------------------------------------------------------------------------
/Frameworks/Sparkle.framework/Versions/A/Resources/nl.lproj/SUUpdatePermissionPrompt.nib/classes.nib:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | IBClasses
6 |
7 |
8 | CLASS
9 | SUWindowController
10 | LANGUAGE
11 | ObjC
12 | SUPERCLASS
13 | NSWindowController
14 |
15 |
16 | ACTIONS
17 |
18 | finishPrompt
19 | id
20 | toggleMoreInfo
21 | id
22 |
23 | CLASS
24 | SUUpdatePermissionPrompt
25 | LANGUAGE
26 | ObjC
27 | OUTLETS
28 |
29 | delegate
30 | id
31 | descriptionTextField
32 | NSTextField
33 | moreInfoButton
34 | NSButton
35 | moreInfoView
36 | NSView
37 |
38 | SUPERCLASS
39 | SUWindowController
40 |
41 |
42 | CLASS
43 | FirstResponder
44 | LANGUAGE
45 | ObjC
46 | SUPERCLASS
47 | NSObject
48 |
49 |
50 | CLASS
51 | NSObject
52 | LANGUAGE
53 | ObjC
54 |
55 |
56 | IBVersion
57 | 1
58 |
59 |
60 |
--------------------------------------------------------------------------------
/Frameworks/Sparkle.framework/Versions/A/Resources/nl.lproj/SUUpdatePermissionPrompt.nib/info.nib:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | IBFramework Version
6 | 629
7 | IBOldestOS
8 | 5
9 | IBOpenObjects
10 |
11 | IBSystem Version
12 | 9E17
13 | targetFramework
14 | IBCocoaFramework
15 |
16 |
17 |
--------------------------------------------------------------------------------
/Frameworks/Sparkle.framework/Versions/A/Resources/nl.lproj/SUUpdatePermissionPrompt.nib/keyedobjects.nib:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/nfarina/feeds/c6ad6c68f53eca08ced40ed1e4b3d2d6ab99bea6/Frameworks/Sparkle.framework/Versions/A/Resources/nl.lproj/SUUpdatePermissionPrompt.nib/keyedobjects.nib
--------------------------------------------------------------------------------
/Frameworks/Sparkle.framework/Versions/A/Resources/nl.lproj/Sparkle.strings:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/nfarina/feeds/c6ad6c68f53eca08ced40ed1e4b3d2d6ab99bea6/Frameworks/Sparkle.framework/Versions/A/Resources/nl.lproj/Sparkle.strings
--------------------------------------------------------------------------------
/Frameworks/Sparkle.framework/Versions/A/Resources/relaunch:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/nfarina/feeds/c6ad6c68f53eca08ced40ed1e4b3d2d6ab99bea6/Frameworks/Sparkle.framework/Versions/A/Resources/relaunch
--------------------------------------------------------------------------------
/Frameworks/Sparkle.framework/Versions/A/Resources/ru.lproj/SUAutomaticUpdateAlert.nib/classes.nib:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | IBClasses
6 |
7 |
8 | CLASS
9 | SUWindowController
10 | LANGUAGE
11 | ObjC
12 | SUPERCLASS
13 | NSWindowController
14 |
15 |
16 | ACTIONS
17 |
18 | doNotInstall
19 | id
20 | installLater
21 | id
22 | installNow
23 | id
24 |
25 | CLASS
26 | SUAutomaticUpdateAlert
27 | LANGUAGE
28 | ObjC
29 | SUPERCLASS
30 | SUWindowController
31 |
32 |
33 | CLASS
34 | FirstResponder
35 | LANGUAGE
36 | ObjC
37 | SUPERCLASS
38 | NSObject
39 |
40 |
41 | CLASS
42 | NSObject
43 | LANGUAGE
44 | ObjC
45 |
46 |
47 | IBVersion
48 | 1
49 |
50 |
51 |
--------------------------------------------------------------------------------
/Frameworks/Sparkle.framework/Versions/A/Resources/ru.lproj/SUAutomaticUpdateAlert.nib/info.nib:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | IBFramework Version
6 | 670
7 | IBLastKnownRelativeProjectPath
8 | ../Sparkle.xcodeproj
9 | IBOldestOS
10 | 5
11 | IBOpenObjects
12 |
13 | 6
14 |
15 | IBSystem Version
16 | 9E17
17 | targetFramework
18 | IBCocoaFramework
19 |
20 |
21 |
--------------------------------------------------------------------------------
/Frameworks/Sparkle.framework/Versions/A/Resources/ru.lproj/SUAutomaticUpdateAlert.nib/keyedobjects.nib:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/nfarina/feeds/c6ad6c68f53eca08ced40ed1e4b3d2d6ab99bea6/Frameworks/Sparkle.framework/Versions/A/Resources/ru.lproj/SUAutomaticUpdateAlert.nib/keyedobjects.nib
--------------------------------------------------------------------------------
/Frameworks/Sparkle.framework/Versions/A/Resources/ru.lproj/SUUpdateAlert.nib/classes.nib:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | IBClasses
6 |
7 |
8 | CLASS
9 | SUWindowController
10 | LANGUAGE
11 | ObjC
12 | SUPERCLASS
13 | NSWindowController
14 |
15 |
16 | CLASS
17 | NSApplication
18 | LANGUAGE
19 | ObjC
20 | SUPERCLASS
21 | NSResponder
22 |
23 |
24 | ACTIONS
25 |
26 | installUpdate
27 | id
28 | remindMeLater
29 | id
30 | skipThisVersion
31 | id
32 |
33 | CLASS
34 | SUUpdateAlert
35 | LANGUAGE
36 | ObjC
37 | OUTLETS
38 |
39 | delegate
40 | id
41 | description
42 | NSTextField
43 | releaseNotesView
44 | WebView
45 |
46 | SUPERCLASS
47 | SUWindowController
48 |
49 |
50 | CLASS
51 | FirstResponder
52 | LANGUAGE
53 | ObjC
54 | SUPERCLASS
55 | NSObject
56 |
57 |
58 | CLASS
59 | NSObject
60 | LANGUAGE
61 | ObjC
62 |
63 |
64 | IBVersion
65 | 1
66 |
67 |
68 |
--------------------------------------------------------------------------------
/Frameworks/Sparkle.framework/Versions/A/Resources/ru.lproj/SUUpdateAlert.nib/info.nib:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | IBFramework Version
6 | 670
7 | IBLastKnownRelativeProjectPath
8 | ../Sparkle.xcodeproj
9 | IBOldestOS
10 | 5
11 | IBOpenObjects
12 |
13 | 6
14 |
15 | IBSystem Version
16 | 9E17
17 | targetFramework
18 | IBCocoaFramework
19 |
20 |
21 |
--------------------------------------------------------------------------------
/Frameworks/Sparkle.framework/Versions/A/Resources/ru.lproj/SUUpdateAlert.nib/keyedobjects.nib:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/nfarina/feeds/c6ad6c68f53eca08ced40ed1e4b3d2d6ab99bea6/Frameworks/Sparkle.framework/Versions/A/Resources/ru.lproj/SUUpdateAlert.nib/keyedobjects.nib
--------------------------------------------------------------------------------
/Frameworks/Sparkle.framework/Versions/A/Resources/ru.lproj/SUUpdatePermissionPrompt.nib/classes.nib:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | IBClasses
6 |
7 |
8 | CLASS
9 | NSObject
10 | LANGUAGE
11 | ObjC
12 |
13 |
14 | CLASS
15 | SUWindowController
16 | LANGUAGE
17 | ObjC
18 | SUPERCLASS
19 | NSWindowController
20 |
21 |
22 | ACTIONS
23 |
24 | finishPrompt
25 | id
26 | toggleMoreInfo
27 | id
28 |
29 | CLASS
30 | SUUpdatePermissionPrompt
31 | LANGUAGE
32 | ObjC
33 | OUTLETS
34 |
35 | delegate
36 | id
37 | descriptionTextField
38 | NSTextField
39 | moreInfoButton
40 | NSButton
41 | moreInfoView
42 | NSView
43 |
44 | SUPERCLASS
45 | SUWindowController
46 |
47 |
48 | CLASS
49 | FirstResponder
50 | LANGUAGE
51 | ObjC
52 | SUPERCLASS
53 | NSObject
54 |
55 |
56 | IBVersion
57 | 1
58 |
59 |
60 |
--------------------------------------------------------------------------------
/Frameworks/Sparkle.framework/Versions/A/Resources/ru.lproj/SUUpdatePermissionPrompt.nib/info.nib:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | IBFramework Version
6 | 670
7 | IBLastKnownRelativeProjectPath
8 | ../Sparkle.xcodeproj
9 | IBOldestOS
10 | 5
11 | IBOpenObjects
12 |
13 | IBSystem Version
14 | 9E17
15 | targetFramework
16 | IBCocoaFramework
17 |
18 |
19 |
--------------------------------------------------------------------------------
/Frameworks/Sparkle.framework/Versions/A/Resources/ru.lproj/SUUpdatePermissionPrompt.nib/keyedobjects.nib:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/nfarina/feeds/c6ad6c68f53eca08ced40ed1e4b3d2d6ab99bea6/Frameworks/Sparkle.framework/Versions/A/Resources/ru.lproj/SUUpdatePermissionPrompt.nib/keyedobjects.nib
--------------------------------------------------------------------------------
/Frameworks/Sparkle.framework/Versions/A/Resources/ru.lproj/Sparkle.strings:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/nfarina/feeds/c6ad6c68f53eca08ced40ed1e4b3d2d6ab99bea6/Frameworks/Sparkle.framework/Versions/A/Resources/ru.lproj/Sparkle.strings
--------------------------------------------------------------------------------
/Frameworks/Sparkle.framework/Versions/A/Resources/sv.lproj/SUAutomaticUpdateAlert.nib/classes.nib:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | IBClasses
6 |
7 |
8 | CLASS
9 | SUWindowController
10 | LANGUAGE
11 | ObjC
12 | SUPERCLASS
13 | NSWindowController
14 |
15 |
16 | ACTIONS
17 |
18 | doNotInstall
19 | id
20 | installLater
21 | id
22 | installNow
23 | id
24 |
25 | CLASS
26 | SUAutomaticUpdateAlert
27 | LANGUAGE
28 | ObjC
29 | SUPERCLASS
30 | SUWindowController
31 |
32 |
33 | CLASS
34 | FirstResponder
35 | LANGUAGE
36 | ObjC
37 | SUPERCLASS
38 | NSObject
39 |
40 |
41 | CLASS
42 | NSObject
43 | LANGUAGE
44 | ObjC
45 |
46 |
47 | IBVersion
48 | 1
49 |
50 |
51 |
--------------------------------------------------------------------------------
/Frameworks/Sparkle.framework/Versions/A/Resources/sv.lproj/SUAutomaticUpdateAlert.nib/info.nib:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | IBFramework Version
6 | 670
7 | IBLastKnownRelativeProjectPath
8 | ../Sparkle.xcodeproj
9 | IBOldestOS
10 | 5
11 | IBOpenObjects
12 |
13 | 6
14 |
15 | IBSystem Version
16 | 10A96
17 | targetFramework
18 | IBCocoaFramework
19 |
20 |
21 |
--------------------------------------------------------------------------------
/Frameworks/Sparkle.framework/Versions/A/Resources/sv.lproj/SUAutomaticUpdateAlert.nib/keyedobjects.nib:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/nfarina/feeds/c6ad6c68f53eca08ced40ed1e4b3d2d6ab99bea6/Frameworks/Sparkle.framework/Versions/A/Resources/sv.lproj/SUAutomaticUpdateAlert.nib/keyedobjects.nib
--------------------------------------------------------------------------------
/Frameworks/Sparkle.framework/Versions/A/Resources/sv.lproj/SUUpdateAlert.nib/classes.nib:
--------------------------------------------------------------------------------
1 | {
2 | IBClasses = (
3 | {
4 | CLASS = FirstResponder;
5 | LANGUAGE = ObjC;
6 | SUPERCLASS = NSObject;
7 | },
8 | {
9 | CLASS = NSApplication;
10 | LANGUAGE = ObjC;
11 | SUPERCLASS = NSResponder;
12 | },
13 | {
14 | CLASS = NSObject;
15 | LANGUAGE = ObjC;
16 | },
17 | {
18 | ACTIONS = {
19 | installUpdate = id;
20 | remindMeLater = id;
21 | skipThisVersion = id;
22 | };
23 | CLASS = SUUpdateAlert;
24 | LANGUAGE = ObjC;
25 | OUTLETS = {
26 | delegate = id;
27 | description = NSTextField;
28 | releaseNotesView = WebView;
29 | };
30 | SUPERCLASS = SUWindowController;
31 | },
32 | {
33 | CLASS = SUWindowController;
34 | LANGUAGE = ObjC;
35 | SUPERCLASS = NSWindowController;
36 | }
37 | );
38 | IBVersion = 1;
39 | }
--------------------------------------------------------------------------------
/Frameworks/Sparkle.framework/Versions/A/Resources/sv.lproj/SUUpdateAlert.nib/info.nib:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | IBDocumentLocation
6 | 69 14 356 240 0 0 1280 778
7 | IBFramework Version
8 | 489.0
9 | IBLastKnownRelativeProjectPath
10 | ../Sparkle.xcodeproj
11 | IBOldestOS
12 | 5
13 | IBSystem Version
14 | 9D34
15 | targetFramework
16 | IBCocoaFramework
17 |
18 |
19 |
--------------------------------------------------------------------------------
/Frameworks/Sparkle.framework/Versions/A/Resources/sv.lproj/SUUpdateAlert.nib/keyedobjects.nib:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/nfarina/feeds/c6ad6c68f53eca08ced40ed1e4b3d2d6ab99bea6/Frameworks/Sparkle.framework/Versions/A/Resources/sv.lproj/SUUpdateAlert.nib/keyedobjects.nib
--------------------------------------------------------------------------------
/Frameworks/Sparkle.framework/Versions/A/Resources/sv.lproj/SUUpdatePermissionPrompt.nib/classes.nib:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | IBClasses
6 |
7 |
8 | CLASS
9 | SUWindowController
10 | LANGUAGE
11 | ObjC
12 | SUPERCLASS
13 | NSWindowController
14 |
15 |
16 | ACTIONS
17 |
18 | finishPrompt
19 | id
20 | toggleMoreInfo
21 | id
22 |
23 | CLASS
24 | SUUpdatePermissionPrompt
25 | LANGUAGE
26 | ObjC
27 | OUTLETS
28 |
29 | delegate
30 | id
31 | descriptionTextField
32 | NSTextField
33 | moreInfoButton
34 | NSButton
35 | moreInfoView
36 | NSView
37 |
38 | SUPERCLASS
39 | SUWindowController
40 |
41 |
42 | CLASS
43 | FirstResponder
44 | LANGUAGE
45 | ObjC
46 | SUPERCLASS
47 | NSObject
48 |
49 |
50 | CLASS
51 | NSObject
52 | LANGUAGE
53 | ObjC
54 |
55 |
56 | IBVersion
57 | 1
58 |
59 |
60 |
--------------------------------------------------------------------------------
/Frameworks/Sparkle.framework/Versions/A/Resources/sv.lproj/SUUpdatePermissionPrompt.nib/info.nib:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | IBFramework Version
6 | 670
7 | IBLastKnownRelativeProjectPath
8 | ../Sparkle.xcodeproj
9 | IBOldestOS
10 | 5
11 | IBOpenObjects
12 |
13 | 6
14 |
15 | IBSystem Version
16 | 10A96
17 | targetFramework
18 | IBCocoaFramework
19 |
20 |
21 |
--------------------------------------------------------------------------------
/Frameworks/Sparkle.framework/Versions/A/Resources/sv.lproj/SUUpdatePermissionPrompt.nib/keyedobjects.nib:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/nfarina/feeds/c6ad6c68f53eca08ced40ed1e4b3d2d6ab99bea6/Frameworks/Sparkle.framework/Versions/A/Resources/sv.lproj/SUUpdatePermissionPrompt.nib/keyedobjects.nib
--------------------------------------------------------------------------------
/Frameworks/Sparkle.framework/Versions/A/Resources/sv.lproj/Sparkle.strings:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/nfarina/feeds/c6ad6c68f53eca08ced40ed1e4b3d2d6ab99bea6/Frameworks/Sparkle.framework/Versions/A/Resources/sv.lproj/Sparkle.strings
--------------------------------------------------------------------------------
/Frameworks/Sparkle.framework/Versions/A/Sparkle:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/nfarina/feeds/c6ad6c68f53eca08ced40ed1e4b3d2d6ab99bea6/Frameworks/Sparkle.framework/Versions/A/Sparkle
--------------------------------------------------------------------------------
/Frameworks/Sparkle.framework/Versions/Current:
--------------------------------------------------------------------------------
1 | A
--------------------------------------------------------------------------------
/LICENSE:
--------------------------------------------------------------------------------
1 | The MIT License
2 |
3 | Permission is hereby granted, free of charge, to any person obtaining a copy
4 | of this software and associated documentation files (the "Software"), to deal
5 | in the Software without restriction, including without limitation the rights
6 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
7 | copies of the Software, and to permit persons to whom the Software is
8 | furnished to do so, subject to the following conditions:
9 |
10 | The above copyright notice and this permission notice shall be included in
11 | all copies or substantial portions of the Software.
12 |
13 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
14 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
15 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
16 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
17 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
18 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
19 | THE SOFTWARE.
20 |
--------------------------------------------------------------------------------
/Libraries/DDHotKey/DDHotKey-Info.plist:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | CFBundleDevelopmentRegion
6 | English
7 | CFBundleExecutable
8 | ${EXECUTABLE_NAME}
9 | CFBundleIconFile
10 |
11 | CFBundleIdentifier
12 | com.yourcompany.${PRODUCT_NAME:rfc1034identifier}
13 | CFBundleInfoDictionaryVersion
14 | 6.0
15 | CFBundleName
16 | ${PRODUCT_NAME}
17 | CFBundlePackageType
18 | APPL
19 | CFBundleSignature
20 | ????
21 | CFBundleShortVersionString
22 | 1.0
23 | LSMinimumSystemVersion
24 | ${MACOSX_DEPLOYMENT_TARGET}
25 | CFBundleVersion
26 | 1
27 | NSMainNibFile
28 | MainMenu
29 | NSPrincipalClass
30 | NSApplication
31 |
32 |
33 |
--------------------------------------------------------------------------------
/Libraries/DDHotKey/DDHotKeyAppDelegate.h:
--------------------------------------------------------------------------------
1 | /*
2 | DDHotKey -- DDHotKeyAppDelegate.h
3 |
4 | Copyright (c) 2010, Dave DeLong
5 |
6 | Permission to use, copy, modify, and/or distribute this software for any purpose with or without fee is hereby granted, provided that the above copyright notice and this permission notice appear in all copies.
7 |
8 | The software is provided "as is", without warranty of any kind, including all implied warranties of merchantability and fitness. In no event shall the author(s) or copyright holder(s) be liable for any claim, damages, or other liability, whether in an action of contract, tort, or otherwise, arising from, out of, or in connection with the software or the use or other dealings in the software.
9 | */
10 |
11 | #import
12 |
13 | @interface DDHotKeyAppDelegate : NSObject /**/ {
14 | NSWindow *window;
15 | NSTextView *output;
16 | }
17 |
18 | @property (assign) IBOutlet NSWindow *window;
19 | @property (assign) IBOutlet NSTextView *output;
20 |
21 | - (void) addOutput:(NSString *)newOutput;
22 |
23 | - (IBAction) registerExample1:(id)sender;
24 | - (IBAction) registerExample2:(id)sender;
25 | - (IBAction) registerExample3:(id)sender;
26 |
27 | - (IBAction) unregisterExample1:(id)sender;
28 | - (IBAction) unregisterExample2:(id)sender;
29 | - (IBAction) unregisterExample3:(id)sender;
30 |
31 | @end
32 |
--------------------------------------------------------------------------------
/Libraries/DDHotKey/DDHotKey_Prefix.pch:
--------------------------------------------------------------------------------
1 | //
2 | // Prefix header for all source files of the 'DDHotKey' target in the 'DDHotKey' project
3 | //
4 |
5 | #ifdef __OBJC__
6 | #import
7 | #endif
8 |
--------------------------------------------------------------------------------
/Libraries/DDHotKey/English.lproj/InfoPlist.strings:
--------------------------------------------------------------------------------
1 | /* Localized versions of Info.plist keys */
2 |
3 |
--------------------------------------------------------------------------------
/Libraries/DDHotKey/main.m:
--------------------------------------------------------------------------------
1 | //
2 | // main.m
3 | // DDHotKey
4 | //
5 | // Created by Dave DeLong on 2/24/10.
6 | // Copyright 2010 Home. All rights reserved.
7 | //
8 |
9 | #import
10 |
11 | int main(int argc, char *argv[])
12 | {
13 | return NSApplicationMain(argc, (const char **) argv);
14 | }
15 |
--------------------------------------------------------------------------------
/Libraries/Hpple/TFHpple.h:
--------------------------------------------------------------------------------
1 | //
2 | // TFHpple.h
3 | // Hpple
4 | //
5 | // Created by Geoffrey Grosenbach on 1/31/09.
6 | //
7 | // Copyright (c) 2009 Topfunky Corporation, http://topfunky.com
8 | //
9 | // MIT LICENSE
10 | //
11 | // Permission is hereby granted, free of charge, to any person obtaining
12 | // a copy of this software and associated documentation files (the
13 | // "Software"), to deal in the Software without restriction, including
14 | // without limitation the rights to use, copy, modify, merge, publish,
15 | // distribute, sublicense, and/or sell copies of the Software, and to
16 | // permit persons to whom the Software is furnished to do so, subject to
17 | // the following conditions:
18 | //
19 | // The above copyright notice and this permission notice shall be
20 | // included in all copies or substantial portions of the Software.
21 | //
22 | // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
23 | // EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
24 | // MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
25 | // NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
26 | // LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
27 | // OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
28 | // WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
29 |
30 |
31 | #import
32 |
33 | #import "TFHppleElement.h"
34 |
35 | @interface TFHpple : NSObject {
36 | @private
37 | NSData * data;
38 | BOOL isXML;
39 | }
40 |
41 | - (id) initWithData:(NSData *)theData isXML:(BOOL)isDataXML;
42 | - (id) initWithXMLData:(NSData *)theData;
43 | - (id) initWithHTMLData:(NSData *)theData;
44 |
45 | + (TFHpple *) hppleWithData:(NSData *)theData isXML:(BOOL)isDataXML;
46 | + (TFHpple *) hppleWithXMLData:(NSData *)theData;
47 | + (TFHpple *) hppleWithHTMLData:(NSData *)theData;
48 |
49 | - (NSArray *) searchWithXPathQuery:(NSString *)xPathOrCSS;
50 | - (TFHppleElement *) peekAtSearchWithXPathQuery:(NSString *)xPathOrCSS;
51 |
52 | @property (retain) NSData * data;
53 |
54 | @end
55 |
--------------------------------------------------------------------------------
/Libraries/Hpple/XPathQuery.h:
--------------------------------------------------------------------------------
1 | //
2 | // XPathQuery.h
3 | // FuelFinder
4 | //
5 | // Created by Matt Gallagher on 4/08/08.
6 | // Copyright 2008 __MyCompanyName__. All rights reserved.
7 | //
8 |
9 | NSArray *PerformHTMLXPathQuery(NSData *document, NSString *query);
10 | NSArray *PerformXMLXPathQuery(NSData *document, NSString *query);
11 |
--------------------------------------------------------------------------------
/Libraries/Lumberjack/DDASLLogger.h:
--------------------------------------------------------------------------------
1 | #import
2 | #import
3 |
4 | #import "DDLog.h"
5 |
6 | /**
7 | * Welcome to Cocoa Lumberjack!
8 | *
9 | * The project page has a wealth of documentation if you have any questions.
10 | * https://github.com/robbiehanson/CocoaLumberjack
11 | *
12 | * If you're new to the project you may wish to read the "Getting Started" wiki.
13 | * https://github.com/robbiehanson/CocoaLumberjack/wiki/GettingStarted
14 | *
15 | *
16 | * This class provides a logger for the Apple System Log facility.
17 | *
18 | * As described in the "Getting Started" page,
19 | * the traditional NSLog() function directs it's output to two places:
20 | *
21 | * - Apple System Log
22 | * - StdErr (if stderr is a TTY) so log statements show up in Xcode console
23 | *
24 | * To duplicate NSLog() functionality you can simply add this logger and a tty logger.
25 | * However, if you instead choose to use file logging (for faster performance),
26 | * you may choose to use a file logger and a tty logger.
27 | **/
28 |
29 | @interface DDASLLogger : DDAbstractLogger
30 | {
31 | aslclient client;
32 | }
33 |
34 | + (DDASLLogger *)sharedInstance;
35 |
36 | // Inherited from DDAbstractLogger
37 |
38 | // - (id )logFormatter;
39 | // - (void)setLogFormatter:(id )formatter;
40 |
41 | @end
42 |
--------------------------------------------------------------------------------
/Libraries/SMWebRequest/README.md:
--------------------------------------------------------------------------------
1 |
2 | ### Overview
3 |
4 | SMWebRequest is a very handy lightweight HTTP request class for iOS.
5 |
6 | It encapsulates a single HTTP request and response, and is designed to be less verbose
7 | and simpler to use than NSURLConnection. The server response is buffered completely into memory
8 | then passed back to event listeners as NSData. Optionally, you can specify a delegate which
9 | can process the NSData in some way on a background thread then return something else.
10 |
11 | More info in the blog post:
12 | http://nfarina.com/post/3776625971/webrequest
13 |
14 | ### ARC Support
15 |
16 | If you are including SMWebRequest in a project that has [Automatic Reference Counting (ARC)](http://clang.llvm.org/docs/AutomaticReferenceCounting.html) enabled, you will need to set the `-fno-objc-arc` compiler flag for our source. To do this in Xcode, go to your active target and select the "Build Phases" tab. In the "Compiler Flags" column, set `-fno-objc-arc` for `SMWebRequest.m`.
17 |
18 |
19 |
--------------------------------------------------------------------------------
/Libraries/SMXMLDocument/README.md:
--------------------------------------------------------------------------------
1 |
2 | ### Overview
3 |
4 | SMXMLDocument is a very handy lightweight XML parser for iOS.
5 |
6 | In brief:
7 |
8 | // create a new SMXMLDocument with the contents of sample.xml
9 | SMXMLDocument *document = [SMXMLDocument documentWithData:data error:&error];
10 |
11 | // Pull out the node
12 | SMXMLElement *books = [document.root childNamed:@"books"];
13 |
14 | // Look through children of type
15 | for (SMXMLElement *book in [books childrenNamed:@"book"]) {
16 |
17 | // demonstrate common cases of extracting XML data
18 | NSString *isbn = [book attributeNamed:@"isbn"]; // XML attribute
19 | NSString *title = [book valueWithPath:@"title"]; // child node value
20 |
21 | // show off some KVC magic
22 | NSArray *authors = [[book childNamed:@"authors"].children valueForKey:@"value"];
23 |
24 | // do interesting things...
25 | }
26 |
27 | More info in the blog post:
28 | http://nfarina.com/post/2843708636/a-lightweight-xml-parser-for-ios
29 |
30 | ### ARC Support
31 |
32 | This branch supports (and requires) [Automatic Reference Counting (ARC)](http://clang.llvm.org/docs/AutomaticReferenceCounting.html)
33 |
--------------------------------------------------------------------------------
/Libraries/ShortcutRecorder/README.md:
--------------------------------------------------------------------------------
1 |
2 | Shortcut Recorder
3 | =================
4 |
5 | Shortcut Recorder is a wonderful open-source control that presents the user with the ability to specify a keyboard shortcut by simply typing it.
6 |
7 | The official home for Shortcut Recoder is here:
8 |
9 | http://wafflesoftware.net/shortcut/
10 |
11 | The ZIP file in this directory contains a slightly modified version of Shortcut Recorder used by Feeds. Because Shortcut Recorder is not on Github, I can't easily fork the repository and maintain my own version, so I simply zipped up the whole thing with my modifications and placed it here for future reference.
--------------------------------------------------------------------------------
/Libraries/ShortcutRecorder/Shortcutrecorder Modified.zip:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/nfarina/feeds/c6ad6c68f53eca08ced40ed1e4b3d2d6ab99bea6/Libraries/ShortcutRecorder/Shortcutrecorder Modified.zip
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | 
2 |
3 | Overview
4 | ========
5 |
6 | Feeds lives in your Mac's menu bar and lets you quickly view the content of new posts on your favorite web services without ever opening a browser window.
7 |
8 | For more information, see the [Official Website](http://www.feedsapp.com).
9 |
10 |
11 | Adding New Account Types
12 | ------------------------
13 |
14 | To add a new service to Feeds, you simply write an `Account` subclass. We're still working on documentation for how to write these classes, but you can examing the existing ones to get a sense for it.
15 |
16 | Note regarding **Github two-factor authentication**
17 |
18 | 2FA isn't yet supported, in the mean time you can create an app token in: [Settings > Tokens](https://github.com/settings/tokens), and provide the token as your password.
19 |
20 |
21 | Migrating Your Old Accounts
22 | ---------------------------
23 |
24 | If you originally downloaded Feeds from the Mac App Store, your existing preferences file (with all the accounts you added) will have been stored in the Mac App Sandbox. If you want to reuse your old preferences file, you can find it here:
25 |
26 | ~/Library/Containers/com.feedsapp.Feeds/Data/Library/Preferences/com.feedsapp.Feeds.plist
27 |
28 | And simply copy it to here:
29 |
30 | ~/Library/Preferences/com.feedsapp.Feeds.plist
31 |
--------------------------------------------------------------------------------
/Website/app.yaml:
--------------------------------------------------------------------------------
1 | runtime: python27
2 | api_version: 1
3 | threadsafe: yes
4 |
5 | handlers:
6 | - url: /css
7 | static_dir: css
8 |
9 | - url: /css/(.*\.svg)
10 | static_files: static/\1
11 | upload: static/(.*\.svg)
12 | mime_type: text/plain
13 |
14 | - url: /js
15 | static_dir: js
16 |
17 | - url: /img
18 | static_dir: img
19 |
20 | - url: /wallpaper
21 | static_dir: wallpaper
22 |
23 | - url: /appcast\.xml
24 | script: appcast.app
25 |
26 | - url: /favicon.ico
27 | static_files: img/favicon.ico
28 | upload: img/favicon.ico
29 |
30 | - url: /
31 | static_files: index.html
32 | upload: index.html
33 |
--------------------------------------------------------------------------------
/Website/appcast.py:
--------------------------------------------------------------------------------
1 | import webapp2
2 |
3 | class MainPage(webapp2.RequestHandler):
4 | def get(self):
5 | self.redirect("https://storage.googleapis.com/feeds-releases/appcast.xml")
6 |
7 | app = webapp2.WSGIApplication([
8 | ('.*', MainPage),
9 | ], debug=True)
--------------------------------------------------------------------------------
/Website/img/app-icon.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/nfarina/feeds/c6ad6c68f53eca08ced40ed1e4b3d2d6ab99bea6/Website/img/app-icon.png
--------------------------------------------------------------------------------
/Website/img/app-menu-selection.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/nfarina/feeds/c6ad6c68f53eca08ced40ed1e4b3d2d6ab99bea6/Website/img/app-menu-selection.png
--------------------------------------------------------------------------------
/Website/img/app-menu.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/nfarina/feeds/c6ad6c68f53eca08ced40ed1e4b3d2d6ab99bea6/Website/img/app-menu.png
--------------------------------------------------------------------------------
/Website/img/app-popover-image.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/nfarina/feeds/c6ad6c68f53eca08ced40ed1e4b3d2d6ab99bea6/Website/img/app-popover-image.jpg
--------------------------------------------------------------------------------
/Website/img/app-popover-image.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/nfarina/feeds/c6ad6c68f53eca08ced40ed1e4b3d2d6ab99bea6/Website/img/app-popover-image.png
--------------------------------------------------------------------------------
/Website/img/app-popover.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/nfarina/feeds/c6ad6c68f53eca08ced40ed1e4b3d2d6ab99bea6/Website/img/app-popover.png
--------------------------------------------------------------------------------
/Website/img/arrow-1.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/nfarina/feeds/c6ad6c68f53eca08ced40ed1e4b3d2d6ab99bea6/Website/img/arrow-1.png
--------------------------------------------------------------------------------
/Website/img/arrow-2.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/nfarina/feeds/c6ad6c68f53eca08ced40ed1e4b3d2d6ab99bea6/Website/img/arrow-2.png
--------------------------------------------------------------------------------
/Website/img/arrow-down.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/nfarina/feeds/c6ad6c68f53eca08ced40ed1e4b3d2d6ab99bea6/Website/img/arrow-down.png
--------------------------------------------------------------------------------
/Website/img/bg-tile.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/nfarina/feeds/c6ad6c68f53eca08ced40ed1e4b3d2d6ab99bea6/Website/img/bg-tile.jpg
--------------------------------------------------------------------------------
/Website/img/bg-tile_gradient.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/nfarina/feeds/c6ad6c68f53eca08ced40ed1e4b3d2d6ab99bea6/Website/img/bg-tile_gradient.jpg
--------------------------------------------------------------------------------
/Website/img/buy-coming_soon.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/nfarina/feeds/c6ad6c68f53eca08ced40ed1e4b3d2d6ab99bea6/Website/img/buy-coming_soon.png
--------------------------------------------------------------------------------
/Website/img/buy-sale.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/nfarina/feeds/c6ad6c68f53eca08ced40ed1e4b3d2d6ab99bea6/Website/img/buy-sale.png
--------------------------------------------------------------------------------
/Website/img/buy.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/nfarina/feeds/c6ad6c68f53eca08ced40ed1e4b3d2d6ab99bea6/Website/img/buy.png
--------------------------------------------------------------------------------
/Website/img/checkmark.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/nfarina/feeds/c6ad6c68f53eca08ced40ed1e4b3d2d6ab99bea6/Website/img/checkmark.png
--------------------------------------------------------------------------------
/Website/img/desktop-bg.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/nfarina/feeds/c6ad6c68f53eca08ced40ed1e4b3d2d6ab99bea6/Website/img/desktop-bg.jpg
--------------------------------------------------------------------------------
/Website/img/desktop-menu_bar.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/nfarina/feeds/c6ad6c68f53eca08ced40ed1e4b3d2d6ab99bea6/Website/img/desktop-menu_bar.png
--------------------------------------------------------------------------------
/Website/img/download.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/nfarina/feeds/c6ad6c68f53eca08ced40ed1e4b3d2d6ab99bea6/Website/img/download.png
--------------------------------------------------------------------------------
/Website/img/feed.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/nfarina/feeds/c6ad6c68f53eca08ced40ed1e4b3d2d6ab99bea6/Website/img/feed.png
--------------------------------------------------------------------------------
/Website/img/footer-life_buoy.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/nfarina/feeds/c6ad6c68f53eca08ced40ed1e4b3d2d6ab99bea6/Website/img/footer-life_buoy.png
--------------------------------------------------------------------------------
/Website/img/footer-twitter.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/nfarina/feeds/c6ad6c68f53eca08ced40ed1e4b3d2d6ab99bea6/Website/img/footer-twitter.png
--------------------------------------------------------------------------------
/Website/img/header-bg-tile.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/nfarina/feeds/c6ad6c68f53eca08ced40ed1e4b3d2d6ab99bea6/Website/img/header-bg-tile.png
--------------------------------------------------------------------------------
/Website/img/icon-256.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/nfarina/feeds/c6ad6c68f53eca08ced40ed1e4b3d2d6ab99bea6/Website/img/icon-256.png
--------------------------------------------------------------------------------
/Website/img/icon-284.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/nfarina/feeds/c6ad6c68f53eca08ced40ed1e4b3d2d6ab99bea6/Website/img/icon-284.png
--------------------------------------------------------------------------------
/Website/img/line-1px.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/nfarina/feeds/c6ad6c68f53eca08ced40ed1e4b3d2d6ab99bea6/Website/img/line-1px.png
--------------------------------------------------------------------------------
/Website/img/line-gradient_horiz.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/nfarina/feeds/c6ad6c68f53eca08ced40ed1e4b3d2d6ab99bea6/Website/img/line-gradient_horiz.png
--------------------------------------------------------------------------------
/Website/img/line-gradient_vert_down.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/nfarina/feeds/c6ad6c68f53eca08ced40ed1e4b3d2d6ab99bea6/Website/img/line-gradient_vert_down.png
--------------------------------------------------------------------------------
/Website/img/line-gradient_vert_up.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/nfarina/feeds/c6ad6c68f53eca08ced40ed1e4b3d2d6ab99bea6/Website/img/line-gradient_vert_up.png
--------------------------------------------------------------------------------
/Website/img/rss.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/nfarina/feeds/c6ad6c68f53eca08ced40ed1e4b3d2d6ab99bea6/Website/img/rss.png
--------------------------------------------------------------------------------
/Website/img/screenshot-1.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/nfarina/feeds/c6ad6c68f53eca08ced40ed1e4b3d2d6ab99bea6/Website/img/screenshot-1.jpg
--------------------------------------------------------------------------------
/Website/img/screenshot-1_sm.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/nfarina/feeds/c6ad6c68f53eca08ced40ed1e4b3d2d6ab99bea6/Website/img/screenshot-1_sm.png
--------------------------------------------------------------------------------
/Website/img/screenshot-2.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/nfarina/feeds/c6ad6c68f53eca08ced40ed1e4b3d2d6ab99bea6/Website/img/screenshot-2.jpg
--------------------------------------------------------------------------------
/Website/img/screenshot-2_sm.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/nfarina/feeds/c6ad6c68f53eca08ced40ed1e4b3d2d6ab99bea6/Website/img/screenshot-2_sm.png
--------------------------------------------------------------------------------
/Website/img/screenshot-3.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/nfarina/feeds/c6ad6c68f53eca08ced40ed1e4b3d2d6ab99bea6/Website/img/screenshot-3.jpg
--------------------------------------------------------------------------------
/Website/img/screenshot-3_sm.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/nfarina/feeds/c6ad6c68f53eca08ced40ed1e4b3d2d6ab99bea6/Website/img/screenshot-3_sm.png
--------------------------------------------------------------------------------
/Website/img/service-basecamp.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/nfarina/feeds/c6ad6c68f53eca08ced40ed1e4b3d2d6ab99bea6/Website/img/service-basecamp.png
--------------------------------------------------------------------------------
/Website/img/service-beanstalk.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/nfarina/feeds/c6ad6c68f53eca08ced40ed1e4b3d2d6ab99bea6/Website/img/service-beanstalk.png
--------------------------------------------------------------------------------
/Website/img/service-dribbble.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/nfarina/feeds/c6ad6c68f53eca08ced40ed1e4b3d2d6ab99bea6/Website/img/service-dribbble.png
--------------------------------------------------------------------------------
/Website/img/service-dropmark.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/nfarina/feeds/c6ad6c68f53eca08ced40ed1e4b3d2d6ab99bea6/Website/img/service-dropmark.png
--------------------------------------------------------------------------------
/Website/img/service-github.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/nfarina/feeds/c6ad6c68f53eca08ced40ed1e4b3d2d6ab99bea6/Website/img/service-github.png
--------------------------------------------------------------------------------
/Website/img/service-highrise.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/nfarina/feeds/c6ad6c68f53eca08ced40ed1e4b3d2d6ab99bea6/Website/img/service-highrise.png
--------------------------------------------------------------------------------
/Website/img/service-pivotaltracker.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/nfarina/feeds/c6ad6c68f53eca08ced40ed1e4b3d2d6ab99bea6/Website/img/service-pivotaltracker.png
--------------------------------------------------------------------------------
/Website/img/service-trello.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/nfarina/feeds/c6ad6c68f53eca08ced40ed1e4b3d2d6ab99bea6/Website/img/service-trello.png
--------------------------------------------------------------------------------
/Website/img/service-uservoice.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/nfarina/feeds/c6ad6c68f53eca08ced40ed1e4b3d2d6ab99bea6/Website/img/service-uservoice.png
--------------------------------------------------------------------------------
/Website/img/service-zendesk.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/nfarina/feeds/c6ad6c68f53eca08ced40ed1e4b3d2d6ab99bea6/Website/img/service-zendesk.png
--------------------------------------------------------------------------------
/Website/img/star.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/nfarina/feeds/c6ad6c68f53eca08ced40ed1e4b3d2d6ab99bea6/Website/img/star.png
--------------------------------------------------------------------------------
/Website/img/wallpaper-macbook_air.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/nfarina/feeds/c6ad6c68f53eca08ced40ed1e4b3d2d6ab99bea6/Website/img/wallpaper-macbook_air.png
--------------------------------------------------------------------------------
/Website/img/wallpaper-option-1.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/nfarina/feeds/c6ad6c68f53eca08ced40ed1e4b3d2d6ab99bea6/Website/img/wallpaper-option-1.jpg
--------------------------------------------------------------------------------
/Website/img/wallpaper-option-2.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/nfarina/feeds/c6ad6c68f53eca08ced40ed1e4b3d2d6ab99bea6/Website/img/wallpaper-option-2.jpg
--------------------------------------------------------------------------------
/Website/img/zoom/closebox.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/nfarina/feeds/c6ad6c68f53eca08ced40ed1e4b3d2d6ab99bea6/Website/img/zoom/closebox.png
--------------------------------------------------------------------------------
/Website/img/zoom/spacer.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/nfarina/feeds/c6ad6c68f53eca08ced40ed1e4b3d2d6ab99bea6/Website/img/zoom/spacer.gif
--------------------------------------------------------------------------------
/Website/img/zoom/zoom-caption-fill.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/nfarina/feeds/c6ad6c68f53eca08ced40ed1e4b3d2d6ab99bea6/Website/img/zoom/zoom-caption-fill.png
--------------------------------------------------------------------------------
/Website/img/zoom/zoom-caption-l.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/nfarina/feeds/c6ad6c68f53eca08ced40ed1e4b3d2d6ab99bea6/Website/img/zoom/zoom-caption-l.png
--------------------------------------------------------------------------------
/Website/img/zoom/zoom-caption-r.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/nfarina/feeds/c6ad6c68f53eca08ced40ed1e4b3d2d6ab99bea6/Website/img/zoom/zoom-caption-r.png
--------------------------------------------------------------------------------
/Website/img/zoom/zoom-shadow1.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/nfarina/feeds/c6ad6c68f53eca08ced40ed1e4b3d2d6ab99bea6/Website/img/zoom/zoom-shadow1.png
--------------------------------------------------------------------------------
/Website/img/zoom/zoom-shadow2.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/nfarina/feeds/c6ad6c68f53eca08ced40ed1e4b3d2d6ab99bea6/Website/img/zoom/zoom-shadow2.png
--------------------------------------------------------------------------------
/Website/img/zoom/zoom-shadow3.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/nfarina/feeds/c6ad6c68f53eca08ced40ed1e4b3d2d6ab99bea6/Website/img/zoom/zoom-shadow3.png
--------------------------------------------------------------------------------
/Website/img/zoom/zoom-shadow4.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/nfarina/feeds/c6ad6c68f53eca08ced40ed1e4b3d2d6ab99bea6/Website/img/zoom/zoom-shadow4.png
--------------------------------------------------------------------------------
/Website/img/zoom/zoom-shadow5.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/nfarina/feeds/c6ad6c68f53eca08ced40ed1e4b3d2d6ab99bea6/Website/img/zoom/zoom-shadow5.png
--------------------------------------------------------------------------------
/Website/img/zoom/zoom-shadow6.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/nfarina/feeds/c6ad6c68f53eca08ced40ed1e4b3d2d6ab99bea6/Website/img/zoom/zoom-shadow6.png
--------------------------------------------------------------------------------
/Website/img/zoom/zoom-shadow7.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/nfarina/feeds/c6ad6c68f53eca08ced40ed1e4b3d2d6ab99bea6/Website/img/zoom/zoom-shadow7.png
--------------------------------------------------------------------------------
/Website/img/zoom/zoom-shadow8.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/nfarina/feeds/c6ad6c68f53eca08ced40ed1e4b3d2d6ab99bea6/Website/img/zoom/zoom-shadow8.png
--------------------------------------------------------------------------------
/Website/img/zoom/zoom-spin-1.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/nfarina/feeds/c6ad6c68f53eca08ced40ed1e4b3d2d6ab99bea6/Website/img/zoom/zoom-spin-1.png
--------------------------------------------------------------------------------
/Website/img/zoom/zoom-spin-10.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/nfarina/feeds/c6ad6c68f53eca08ced40ed1e4b3d2d6ab99bea6/Website/img/zoom/zoom-spin-10.png
--------------------------------------------------------------------------------
/Website/img/zoom/zoom-spin-11.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/nfarina/feeds/c6ad6c68f53eca08ced40ed1e4b3d2d6ab99bea6/Website/img/zoom/zoom-spin-11.png
--------------------------------------------------------------------------------
/Website/img/zoom/zoom-spin-12.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/nfarina/feeds/c6ad6c68f53eca08ced40ed1e4b3d2d6ab99bea6/Website/img/zoom/zoom-spin-12.png
--------------------------------------------------------------------------------
/Website/img/zoom/zoom-spin-2.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/nfarina/feeds/c6ad6c68f53eca08ced40ed1e4b3d2d6ab99bea6/Website/img/zoom/zoom-spin-2.png
--------------------------------------------------------------------------------
/Website/img/zoom/zoom-spin-3.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/nfarina/feeds/c6ad6c68f53eca08ced40ed1e4b3d2d6ab99bea6/Website/img/zoom/zoom-spin-3.png
--------------------------------------------------------------------------------
/Website/img/zoom/zoom-spin-4.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/nfarina/feeds/c6ad6c68f53eca08ced40ed1e4b3d2d6ab99bea6/Website/img/zoom/zoom-spin-4.png
--------------------------------------------------------------------------------
/Website/img/zoom/zoom-spin-5.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/nfarina/feeds/c6ad6c68f53eca08ced40ed1e4b3d2d6ab99bea6/Website/img/zoom/zoom-spin-5.png
--------------------------------------------------------------------------------
/Website/img/zoom/zoom-spin-6.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/nfarina/feeds/c6ad6c68f53eca08ced40ed1e4b3d2d6ab99bea6/Website/img/zoom/zoom-spin-6.png
--------------------------------------------------------------------------------
/Website/img/zoom/zoom-spin-7.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/nfarina/feeds/c6ad6c68f53eca08ced40ed1e4b3d2d6ab99bea6/Website/img/zoom/zoom-spin-7.png
--------------------------------------------------------------------------------
/Website/img/zoom/zoom-spin-8.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/nfarina/feeds/c6ad6c68f53eca08ced40ed1e4b3d2d6ab99bea6/Website/img/zoom/zoom-spin-8.png
--------------------------------------------------------------------------------
/Website/img/zoom/zoom-spin-9.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/nfarina/feeds/c6ad6c68f53eca08ced40ed1e4b3d2d6ab99bea6/Website/img/zoom/zoom-spin-9.png
--------------------------------------------------------------------------------
/Website/index.yaml:
--------------------------------------------------------------------------------
1 | indexes:
2 |
3 | # AUTOGENERATED
4 |
5 | # This index.yaml is automatically updated whenever the dev_appserver
6 | # detects that a new type of query is run. If you want to manage the
7 | # index.yaml file manually, remove the above marker line (the line
8 | # saying "# AUTOGENERATED"). If you want to manage some indexes
9 | # manually, move them above the marker line. The index.yaml file is
10 | # automatically uploaded to the admin console when you next deploy
11 | # your application using appcfg.py.
12 |
--------------------------------------------------------------------------------