Skip to content
Fetching contributors…
Cannot retrieve contributors at this time
67 lines (58 sloc) 2.02 KB
// URLHandlerCommand.m
// Vienna
// Created by Steve on Wed Feb 04 2004.
// Copyright (c) 2004-2005 Steve Palmer. All rights reserved.
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// See the License for the specific language governing permissions and
// limitations under the License.
#import "URLHandlerCommand.h"
#import "AppController.h"
@implementation ViennaScriptCommand
/* performDefaultImplementation
* This is the entry point for all link handlers associated with Vienna. Currently we parse
* and manage the following format:
* feed://<rss link>
* Where <rss link> may be preceded by a scheme - either http:// or https://. If no scheme
* is specified then http:// is implied.
NSScanner * scanner = [NSScanner scannerWithString:[self directParameter]];
NSString * urlPrefix = nil;
[scanner scanUpToString:@":" intoString:&urlPrefix];
[scanner scanString:@":" intoString:nil];
if (urlPrefix && [urlPrefix isEqualToString:@"feed"])
NSString * feedScheme = nil;
// Throw away the next few bits if they exist
[scanner scanString:@"//" intoString:nil];
[scanner scanString:@"http:" intoString:&feedScheme];
[scanner scanString:@"https:" intoString:&feedScheme];
[scanner scanString:@"//" intoString:nil];
// The rest is the interesting part
NSString * linkPath = nil;
[scanner scanUpToString:@"" intoString:&linkPath];
if (linkPath == nil)
return nil;
if (feedScheme == nil)
feedScheme = @"http:";
linkPath = [NSString stringWithFormat:@"%@//%@", feedScheme, linkPath];
[[NSApp delegate] handleRSSLink:linkPath];
return nil;
Jump to Line
Something went wrong with that request. Please try again.