Created
February 8, 2015 22:31
-
-
Save onderozcan/60f578f8f2a8c7659bbc to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// | |
// midRoll.m | |
// VasPlayer | |
// | |
// Created by Önder ÖZCAN on 29/11/14. | |
// Copyright (c) 2014 Önder ÖZCAN. All rights reserved. | |
// | |
#import "midRoll.h" | |
#import "VastXMLParser.h" | |
#import "AFNetworking.h" | |
@interface midRoll () | |
{ | |
NSUserDefaults *standartUser; | |
BOOL strict; | |
int isActive; | |
NSMutableArray *multipleScenarios; | |
NSMutableArray *multipleScenariosArray; | |
} | |
@end | |
@implementation midRoll | |
- (void)viewDidLoad { | |
[super viewDidLoad]; | |
isActive = 0; | |
// Do any additional setup after loading the view. | |
} | |
-(void)midRoll:(NSString *)sessionID | |
{ | |
AFHTTPRequestOperationManager *manager = [AFHTTPRequestOperationManager manager]; | |
standartUser = [NSUserDefaults standardUserDefaults]; | |
NSString *group = [standartUser objectForKey:@"midRollGroup"]; | |
NSLog(@"Group Name = %@",group); | |
if(group != nil) | |
{ | |
group = [standartUser objectForKey:@"midRollGroup"]; | |
} else { | |
group = @""; | |
} | |
NSDictionary *parameters = @{@"session_id":sessionID,@"group":group}; | |
[manager GET:@"http://serv.tooplay.com/midroll" parameters:parameters success:^(AFHTTPRequestOperation *operation, id responseObject) { | |
NSArray *bannerArray =[responseObject objectForKey:@"banners"]; | |
NSDictionary *advertisements; | |
//https://gist.github.com/onderozcan/165f822a606ea5321edc | |
multipleScenarios = [[NSMutableArray alloc] init]; | |
multipleScenariosArray = [[NSMutableArray alloc] init]; | |
if([bannerArray count] >0) | |
{ | |
for(int x=0; x<bannerArray.count ; x++) | |
{ | |
[multipleScenarios addObject:[bannerArray objectAtIndex:x]]; | |
} | |
} | |
#pragma mark coklu midroll senaryosu. | |
for(int count=0; count<multipleScenarios.count ; count++) | |
{ | |
//coklu gelirse buradan import edilecek | |
isActive = [[[bannerArray objectAtIndex:count] objectForKey:@"active"] intValue]; | |
if(isActive != 0) | |
{ | |
self.advertisementsURL = [[NSMutableArray alloc] init]; | |
self.advertisementsType = [[NSMutableArray alloc] init]; | |
advertisements = [bannerArray objectAtIndex:count]; | |
self.adsType =[advertisements objectForKey:@"type"]; | |
if(![[advertisements objectForKey:@"strict"] isEqual:[NSNull null]]) | |
{ | |
strict = [[advertisements objectForKey:@"strict"] boolValue]; | |
//strict duzeltilecek . | |
} else { | |
strict = NO; | |
} | |
self.mediaShowTime = [advertisements objectForKey:@"time"]; | |
//position size in same dictionary custom objects | |
if([advertisements objectForKey:@"custom_objects"] != nil) | |
{ | |
self.customObject = [[NSMutableDictionary alloc] init]; | |
self.customObjectsArray = [[NSMutableArray alloc] init]; | |
NSDictionary *tempDict = [advertisements objectForKey:@"custom_objects"]; | |
for(int x = 0 ; x < [tempDict count] ; x++) | |
{ | |
[self.customObject setValue:[[tempDict valueForKey:@"position"] objectAtIndex:x] forKey:@"position"]; | |
[self.customObject setValue:[[tempDict valueForKey:@"size"] objectAtIndex:x] forKey:@"size"]; | |
[self.customObject setValue:[[tempDict valueForKey:@"source"] objectAtIndex:x] forKey:@"source"]; | |
[self.customObject setValue:[[tempDict valueForKey:@"timeout"] objectAtIndex:x] forKey:@"timeout"]; | |
[self.customObject setValue:[[tempDict valueForKey:@"time"] objectAtIndex:x] forKey:@"time"]; | |
[self.customObjectsArray insertObject:[self.customObject copy] atIndex:x]; | |
} | |
} | |
standartUser = [NSUserDefaults standardUserDefaults]; | |
[standartUser setValue:[advertisements objectForKey:@"group"] forKey:@"midRollGroup"]; | |
[standartUser synchronize]; | |
if([[advertisements objectForKey:@"type"] isEqualToString:@"embeddedhtml"] || [[advertisements objectForKey:@"type"] isEqualToString:@"html"] || [[advertisements objectForKey:@"type"] isEqualToString:@"flv"] || [[advertisements objectForKey:@"type"] isEqualToString:@"embeddedhtml"] || [[advertisements objectForKey:@"type"] isEqualToString:@"vast_linear"] || [[advertisements objectForKey:@"type"] isEqualToString:@"custom_objects"]) | |
{ | |
[self.advertisementsURL addObject:[advertisements objectForKey:@"source"]]; | |
[self.advertisementsType addObject:[advertisements objectForKey:@"type"]]; | |
[self.groupIDs addObject:[advertisements objectForKey:@"group"]]; | |
//[MidRollAdvertisementStartTime addObject:[advertisements objectForKey:@"start-time"]]; | |
} | |
if([self.adsType isEqualToString:@"vast_linear"]) | |
{ | |
NSLog(@"Midroll Vast Linear Geldi"); | |
self.xmlVastURL = [NSURL URLWithString:[advertisements objectForKey:@"vast_xml"]]; | |
} else { | |
self.advertisementURL = [NSURL URLWithString:[advertisements objectForKey:@"source"]]; | |
} | |
} else { | |
self.adsType = @"midRoll"; | |
} | |
} | |
//Mutable array'e cevirilen obje notifyAsyncTask ile gonderilecek . bu ekilde islenecek . | |
[self notifyAsyncTask]; | |
} failure:^(AFHTTPRequestOperation *operation, NSError *error) { | |
self.adsType = @"midRoll"; | |
isActive = 0 ; | |
[self notifyAsyncTask]; | |
}]; | |
} | |
-(NSString *)notifyAsyncTask | |
{ | |
//NSNotificationCenter Gelecek | |
NSDictionary *nsObject; | |
NSString *postNotifierName = @""; | |
if([multipleScenarios count] > 1) | |
{ | |
//coklu objeleri push edecegiz. | |
//multiple objects VasPlayer.m icinde extract olacak . | |
nsObject = @{@"rollType":@"midRoll",@"multipleObjects":multipleScenarios}; | |
} | |
if(![self.adsType isEqualToString:@"vast_linear"]) | |
{ | |
if([self.customObjectsArray count] > 0) | |
{ | |
nsObject = @{@"adsType":self.adsType,@"advertisementsURL":self.advertisementURL,@"rollType":@"midRoll",@"time":self.mediaShowTime,@"strict":[NSNumber numberWithBool:strict],@"strict":[NSNumber numberWithBool:strict],@"customObjects":self.customObjectsArray}; | |
} else if(isActive == 0) { | |
nsObject = @{@"rollType":self.adsType,@"active":@"none"}; | |
} else { | |
nsObject = @{@"adsType":self.adsType,@"advertisementsURL":self.advertisementURL,@"rollType":@"midRoll",@"time":self.mediaShowTime,@"strict":[NSNumber numberWithBool:strict],@"strict":[NSNumber numberWithBool:strict]}; | |
} | |
postNotifierName = @"rollGetter"; | |
[[NSNotificationCenter defaultCenter] postNotificationName:postNotifierName object:nil userInfo:nsObject]; | |
} else { | |
//Vast geldiyse eğer VastXML'i çağırıyoruz . | |
VastXMLParser *vxp = [[VastXMLParser alloc] init]; | |
nsObject = @{@"adsType":self.adsType,@"advertisementsURL":self.xmlVastURL,@"rollType":@"midRoll",@"time":self.mediaShowTime}; | |
postNotifierName = @"xmlGetter"; | |
[vxp VasXmlParse:nsObject]; | |
} | |
return 0; | |
} | |
- (void)didReceiveMemoryWarning { | |
[super didReceiveMemoryWarning]; | |
// Dispose of any resources that can be recreated. | |
} | |
@end |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment