Prevent sending 0-byte files. Fixes #8711.
[adiumx.git] / Source / AILogFromGroup.m
blob6d94c10411bb523bb4775ede20b5e79ac972a4ca
1 /* 
2  * Adium is the legal property of its developers, whose names are listed in the copyright file included
3  * with this source distribution.
4  * 
5  * This program is free software; you can redistribute it and/or modify it under the terms of the GNU
6  * General Public License as published by the Free Software Foundation; either version 2 of the License,
7  * or (at your option) any later version.
8  * 
9  * This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even
10  * the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General
11  * Public License for more details.
12  * 
13  * You should have received a copy of the GNU General Public License along with this program; if not,
14  * write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
15  */
17 #import "AILoggerPlugin.h"
18 #import "AILogFromGroup.h"
19 #import "AILogToGroup.h"
20 #import <AIUtilities/AIFileManagerAdditions.h>
22 @implementation AILogFromGroup
24 //A group of logs from one of our accounts
25 - (AILogFromGroup *)initWithPath:(NSString *)inPath fromUID:(NSString *)inFromUID serviceClass:(NSString *)inServiceClass;
27     if ((self = [super init]))
28         {
29                 path = [inPath retain];
30                 fromUID = [inFromUID retain];
31                 serviceClass = [inServiceClass retain];
32                 toGroupArray = nil;
33         }
34     
35     return self;
38 //Dealloc
39 - (void)dealloc
41     [path release];
42     [fromUID release];
43         [serviceClass release];
44     [toGroupArray release];
45     
46     [super dealloc];
50 - (NSString *)fromUID
52     return fromUID;
55 - (NSString *)serviceClass
57         return serviceClass;
60 //Returns all of our 'to' groups, creating them if necessary
61 - (NSArray *)toGroupArray
63     if (!toGroupArray) {
64                 NSEnumerator    *enumerator;
65                 NSString                *folderName;
66                 NSString                *fullPath;
67                 
68                 //
69                 toGroupArray = [[NSMutableArray alloc] init];
70                 
71                 //
72                 fullPath = [[AILoggerPlugin logBasePath] stringByAppendingPathComponent:path];
73                 enumerator = [[[NSFileManager defaultManager] directoryContentsAtPath:fullPath] objectEnumerator];
74                 while ((folderName = [enumerator nextObject])) {
75                         if (![folderName isEqualToString:@".DS_Store"]) {
76                                 AILogToGroup    *toGroup = nil;
77                                 
78                                 //#### Why does this alloc fail sometimes? ####
79                                 toGroup = [[AILogToGroup alloc] initWithPath:[path stringByAppendingPathComponent:folderName]
80                                                                                                                 from:fromUID
81                                                                                                                   to:folderName
82                                                                                                 serviceClass:serviceClass];
83                                 
84                                 //Not sure why, but I've had that alloc fail on me before
85                                 if (toGroup != nil) [toGroupArray addObject:toGroup];
86                                 
87                                 [toGroup release];
88                         }
89                 }
90     }
91     
92     return toGroupArray;
95 - (void)removeToGroup:(AILogToGroup *)toGroup
97         [[NSFileManager defaultManager] trashFileAtPath:[[AILoggerPlugin logBasePath] stringByAppendingPathComponent:[toGroup path]]];
99         [toGroupArray removeObjectIdenticalTo:toGroup];
102 @end