diff --git a/README.md b/README.md new file mode 100644 index 0000000..6ed0288 --- /dev/null +++ b/README.md @@ -0,0 +1,181 @@ +Telegram-Purple +=============== + +Telegram-purple is a Libpurple plugin that adds support for the Telegram messenger. Its still in an early (pre-alpha) development stage, but already provides basic chat functionality and group chats. + +This plugin is based on [Telegram-cli](http://github.com/vysheng/tg), a full-featured terminal-based client for Telegram created by [Vysheng](http://github.com/vysheng). + +# Changelog + +Warning, this version is mainly for development and testing and NOT for productive use. Even though it already provides basic features, you should still expect bugs and crashes when running it. + +When encountering a crash or some other bugs, please report it to us, preferably together with a backtrace of the crashed application [https://developer.pidgin.im/wiki/GetABacktrace] + +## Version 0.4 + + - Use latest version of libtgl + +## Version 0.3.3 + + - multiple bugfixes + + +## Version 0.3.2 + + - Add compatibility for OSX 10.8 + + +## Version 0.3.1 + + - Improve error handling + - Fix some installation problems + + +## Version 0.3.0 + + - Provide Adium Plugin + + +# Features + +## Already Implemented: + + - Chats/Group-Chats + * Send/receive messages + * Discover buddies/chats + * Discover buddy state and info + - Profile Pictures + * Download and use profile pictures + - Adium Plugin + +## TODO: + +The following features are currently planned and will probably be added in the future: + + - Encrypted chats + - Picture, audio and video messages + - File transfers + - Geo-locations + - Multiple accounts on one client + - Respect libpurple proxy settings (implemented but untested) + + +## Platform Support + +We only provide an installation guide for Linux right now, even though it should be possible to compile this plugin on other platforms. If someone manages to create a working Windows or BSD-build please let us know. + + +# Installation Instructions + +Unfortunately there are no packages right now, so you need to compile it yourself: + +## 1. Get this repository + + + git clone https://github.com/majn/telegram-purple + +## 2. Get libtgl to tg subfolder + + cd telegram-purple + git clone https://github.com/vysheng/tg + + + +## 3. Fetch all needed dependencies + +This plugin depends on a working libpurple client (like Pidgin or Finch) and the following packages: + + - glib-2.0 + - libssl + - libpurple + - libzlib + +### Fedora + +On Fedora you can install all dependencies with: + + sudo yum install gcc openssl-devel glib2-devel libpurple-devel + +### Debian + +On Debian-based systems you can use: + + sudo apt-get install libssl-dev libglib2.0-dev libpurple-dev + + +NOTE: Ubuntu is currently not working, since libpurple doesn't seem to find libssl when loading the plugin. It will compile, but Pidgin won't be able to load it. + + +### OpenSUSE + + + sudo zypper install gcc glib glib-devel libpurple libpurple-devel zlib-devel openssl libopenssl-devel + + +## 3. Compile and install + + + make + sudo make install + + +# Usage + +After succesfully completing all steps mentioned in the installation instructions, you should restart Pidgin to ensure that the plugin is loaded. When everything went well, Telegram should show up in the account manager: + +![Create a new Telegram account](http://lauschgift.org/telegram-purple/res/install-1.png) + +The username is your current phone number, including your full country prefix instead of a leading '0'. For Germany, this would be '+49' for example. Telegram will verify your phone number by sending you a verification code via sms. You will be prompted for this code, once that happens. + +![Provide a phone number](http://lauschgift.org/telegram-purple/res/install-2.png) + +Now you should be able to see all your contacts and chats in your buddy list and send/receive messages. + + +# Troubleshooting + +If you encounter problems running this plugin and you have updated from an older version, +deleting your old user-data might be helpful. WARNING: This will require you to enter a new authentication +code and delete all your secret chat keys. + +To clean all your user files run: + + + sudo make purge + + + +# Adium Plugin + +## Prebuilt Bundle + +This bundle was tested to work under OSX 10.9 and 10.8. If it doesn't work on your installation +please send your Adium crash log (which you can find in ~/Library/Logs/Adium 2/). + +[Version 0.3.2](http://lauschgift.org/telegram-purple/telegram-adium-0.3.2.zip) +[Version 0.3.2](http://lauschgift.org/telegram-purple/telegram-adium-0.3.3.zip) + +## Build with XCode + +1. Compile the source of your current Adium version and add the created frameworks to the Adium-Telegram build path. +2. Get zlib and libcrypto.a and provide it somewhere in your build path. +3. Build the XCode-Project and execute the created bundle + + +# Unicode Emojis for Pidgin + +The Telegram phone applications for iOS and Android make use of standardized Unicode smileys (called [Emojis](https://en.wikipedia.org/wiki/Emoji)). Pidgin +does not display those smileys natively, but you can install a custom smiley theme like (https://github.com/stv0g/unicode-emoji) or (https://github.com/VxJasonxV/emoji-for-pidgin) and activate it under Settings > Themes > Smiley Theme. + + +# Authors + +Telegram-Purple and Telegram-Adium were written by: + + - Matthias Jentsch + - Christopher Althaus + - Markus Endres + + +The plugin is based on Telegram-CLI, which was written by Vitaly Valtman and others, see (http://github.com/vysheng/tg) + diff --git a/telegram-adium/AdiumTelegramAccount.h b/telegram-adium/AdiumTelegramAccount.h new file mode 100644 index 0000000..7d9fe27 --- /dev/null +++ b/telegram-adium/AdiumTelegramAccount.h @@ -0,0 +1,22 @@ +/** + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02111-1301 USA + */ + +#import +#import + +@interface AdiumTelegramAccount : CBPurpleAccount + +@end diff --git a/telegram-adium/AdiumTelegramAccount.m b/telegram-adium/AdiumTelegramAccount.m new file mode 100644 index 0000000..0843d26 --- /dev/null +++ b/telegram-adium/AdiumTelegramAccount.m @@ -0,0 +1,42 @@ +/** + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02111-1301 USA + */ + +#import "AdiumTelegramAccount.h" +#import + +@implementation AdiumTelegramAccount + +- (const char*)protocolPlugin +{ + return "prpl-telegram"; +} + +- (NSString *)host +{ + return @"149.154.167.50"; +} + +- (int)port +{ + return 443; +} + +- (BOOL)canSendOfflineMessageToContact:(AIListContact *)inContact +{ + return YES; +} + +@end diff --git a/telegram-adium/TelegramPlugin.h b/telegram-adium/TelegramPlugin.h new file mode 100644 index 0000000..cce5641 --- /dev/null +++ b/telegram-adium/TelegramPlugin.h @@ -0,0 +1,23 @@ +/** + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02111-1301 USA + */ + +#import +#import + +@interface TelegramPlugin : AIPlugin { + +} +@end diff --git a/telegram-adium/TelegramPlugin.m b/telegram-adium/TelegramPlugin.m new file mode 100644 index 0000000..acbf619 --- /dev/null +++ b/telegram-adium/TelegramPlugin.m @@ -0,0 +1,69 @@ +/** + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02111-1301 USA + */ + +#import "TelegramPlugin.h" +#import "TelegramService.h" +#import "telegram-purple.h" +#import "mtproto-client.h" + +extern void purple_init_telegram_plugin(); + +@implementation TelegramPlugin + +- (void) installPlugin +{ + rsa_public_key_name = [self getPkName]; + purple_init_telegram_plugin(); + [TelegramService registerService]; +} + +- (void) installLibpurplePlugin +{ +} + +- (void) loadLibpurplePlugin +{ +} + +- (void) uninstallPlugin +{ +} + +- (NSString *)pluginAuthor +{ + return @TG_AUTHOR; +} + +-(NSString *)pluginVersion +{ + return @TG_VERSION; +} + +-(NSString *)pluginDescription +{ + return @"Telegram"; +} + +-(char*)getPkName +{ + const char* utf8String = (char *)[[[NSBundle bundleForClass: [self class]] pathForResource: @"tg-server" ofType: @"pub"] UTF8String]; + size_t len = strlen(utf8String) + 1; + char *buf = talloc0(len); + memcpy(buf, utf8String, len); + return buf; +} + +@end diff --git a/telegram-adium/TelegramService.h b/telegram-adium/TelegramService.h new file mode 100644 index 0000000..2071314 --- /dev/null +++ b/telegram-adium/TelegramService.h @@ -0,0 +1,24 @@ +/** + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02111-1301 USA + */ + +#import +#import + +@interface TelegramService : PurpleService { + +} + +@end diff --git a/telegram-adium/TelegramService.m b/telegram-adium/TelegramService.m new file mode 100644 index 0000000..2ba4d15 --- /dev/null +++ b/telegram-adium/TelegramService.m @@ -0,0 +1,135 @@ +/** + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02111-1301 USA + */ + +#import "TelegramService.h" +#import "AdiumTelegramAccount.h" + +#import +#import + +@implementation TelegramService + +- (Class)accountClass{ + return [AdiumTelegramAccount class]; +} + +//Service Description +- (NSString *)serviceCodeUniqueID{ + return @"prpl-telegram"; +} + +- (NSString *)serviceID{ + return @"Telegram"; +} + +- (NSString *)serviceClass{ + return @"Telegram"; +} + +- (NSString *)shortDescription{ + return @"Telegram"; +} + +- (NSString *)longDescription{ + return @"Telegram"; +} + +- (NSString *)userNameLabel +{ + return @"Phone number\n(with country prefix)"; +} + +- (BOOL)supportsProxySettings{ + return YES; +} + +- (BOOL)supportsPassword +{ + return NO; +} + +- (BOOL)requiresPassword +{ + return NO; +} + +- (BOOL)canCreateGroupChats +{ + return YES; +} + +- (NSString *)UIDPlaceholder +{ + return @"e.g. +49157123456"; +} + +- (BOOL)isSocialNetworkingService +{ + return NO; +} + +- (AIServiceImportance)serviceImportance{ + return AIServiceSecondary; +} + +- (NSCharacterSet *)allowedCharacters{ + return [[NSCharacterSet illegalCharacterSet] invertedSet]; +} +- (NSCharacterSet *)allowedCharactersForAccountName +{ + return ([NSCharacterSet characterSetWithCharactersInString: @"+1234567890"]); +} + +- (NSUInteger)allowedLengthForAccountName +{ + return 16; +} + +- (BOOL)caseSensitive{ + return NO; +} + +- (NSImage *)defaultServiceIconOfType:(AIServiceIconType)iconType +{ + if ((iconType == AIServiceIconSmall) || (iconType == AIServiceIconList)) { + return [NSImage imageNamed:@"telegram16" forClass:[self class] loadLazily:YES]; + } else { + return [NSImage imageNamed:@"telegram" forClass:[self class] loadLazily:YES]; + } +} + +- (NSString *)pathForDefaultServiceIconOfType:(AIServiceIconType)iconType +{ + if ((iconType == AIServiceIconSmall) || (iconType == AIServiceIconList)) { + return [[NSBundle bundleForClass:[self class]] pathForImageResource:@"telegram16"]; + } + return [[NSBundle bundleForClass:[self class]] pathForImageResource:@"telegram"]; +} + +- (void)registerStatuses { +#define ADDSTATUS(name, type) \ +[adium.statusController registerStatus:name \ +withDescription:[adium.statusController localizedDescriptionForCoreStatusName:name] \ +ofType:type forService:self] + + [adium.statusController registerStatus:STATUS_NAME_AVAILABLE withDescription:[adium.statusController localizedDescriptionForCoreStatusName:STATUS_NAME_AVAILABLE] ofType:AIAvailableStatusType forService:self]; + + ADDSTATUS(STATUS_NAME_AVAILABLE, AIAvailableStatusType); + ADDSTATUS(STATUS_NAME_NOT_AVAILABLE, AIAvailableStatusType); + ADDSTATUS(STATUS_NAME_OFFLINE, AIOfflineStatusType); +} + +@end diff --git a/telegram-adium/telegram-adium.xcodeproj/project.pbxproj b/telegram-adium/telegram-adium.xcodeproj/project.pbxproj new file mode 100644 index 0000000..44109a7 --- /dev/null +++ b/telegram-adium/telegram-adium.xcodeproj/project.pbxproj @@ -0,0 +1,518 @@ +// !$*UTF8*$! +{ + archiveVersion = 1; + classes = { + }; + objectVersion = 46; + objects = { + +/* Begin PBXBuildFile section */ + C410948A19BB2D7D0083BF3F /* CoreFoundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = C410948919BB2D7D0083BF3F /* CoreFoundation.framework */; }; + C410949019BB2D7D0083BF3F /* InfoPlist.strings in Resources */ = {isa = PBXBuildFile; fileRef = C410948E19BB2D7D0083BF3F /* InfoPlist.strings */; }; + C410949B19BB337A0083BF3F /* TelegramPlugin.m in Sources */ = {isa = PBXBuildFile; fileRef = C410949A19BB337A0083BF3F /* TelegramPlugin.m */; }; + C466937819E703370036A108 /* AppKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = C466937719E703370036A108 /* AppKit.framework */; }; + C4877C1819BB37EA006FA91F /* TelegramService.m in Sources */ = {isa = PBXBuildFile; fileRef = C4877C1719BB37EA006FA91F /* TelegramService.m */; }; + C4877C1A19BB3D91006FA91F /* telegram-purple.c in Sources */ = {isa = PBXBuildFile; fileRef = C4877C1919BB3D91006FA91F /* telegram-purple.c */; }; + C4877C1E19BB676B006FA91F /* AdiumTelegramAccount.m in Sources */ = {isa = PBXBuildFile; fileRef = C4877C1D19BB676B006FA91F /* AdiumTelegramAccount.m */; }; + C4877C2419BB6D11006FA91F /* telegram.svg in Resources */ = {isa = PBXBuildFile; fileRef = C4877C1F19BB6D11006FA91F /* telegram.svg */; }; + C4877C2519BB6D11006FA91F /* telegram.png in Resources */ = {isa = PBXBuildFile; fileRef = C4877C2019BB6D11006FA91F /* telegram.png */; }; + C4877C2619BB6D11006FA91F /* telegram16.png in Resources */ = {isa = PBXBuildFile; fileRef = C4877C2119BB6D11006FA91F /* telegram16.png */; }; + C4877C2719BB6D11006FA91F /* telegram22.png in Resources */ = {isa = PBXBuildFile; fileRef = C4877C2219BB6D11006FA91F /* telegram22.png */; }; + C4877C2819BB6D11006FA91F /* telegram48.png in Resources */ = {isa = PBXBuildFile; fileRef = C4877C2319BB6D11006FA91F /* telegram48.png */; }; + C49A915619BBC278001B3DC0 /* libcrypto.a in Frameworks */ = {isa = PBXBuildFile; fileRef = C49A915519BBC278001B3DC0 /* libcrypto.a */; }; + C49A915819BBC5C5001B3DC0 /* libz.dylib in Frameworks */ = {isa = PBXBuildFile; fileRef = C49A915719BBC5C5001B3DC0 /* libz.dylib */; }; + C4B81AE319E084B800E9177C /* libglib.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = C4B81AE219E084B800E9177C /* libglib.framework */; }; + C4B81AE519E084C300E9177C /* libgmodule.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = C4B81AE419E084C300E9177C /* libgmodule.framework */; }; + C4B81AE719E084D500E9177C /* libgobject.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = C4B81AE619E084D500E9177C /* libgobject.framework */; }; + C4B81AE919E084DE00E9177C /* libgthread.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = C4B81AE819E084DE00E9177C /* libgthread.framework */; }; + C4B81AEB19E084E500E9177C /* libintl.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = C4B81AEA19E084E500E9177C /* libintl.framework */; }; + C4B81AED19E084ED00E9177C /* libmeanwhile.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = C4B81AEC19E084ED00E9177C /* libmeanwhile.framework */; }; + C4B81AEF19E084F600E9177C /* libpurple.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = C4B81AEE19E084F600E9177C /* libpurple.framework */; }; + C4B81AF119E087AF00E9177C /* AIUtilities.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = C4B81AF019E087AF00E9177C /* AIUtilities.framework */; }; + C4B81AF319E087BA00E9177C /* AdiumLibpurple.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = C4B81AF219E087BA00E9177C /* AdiumLibpurple.framework */; }; + C4B81AF519E087C500E9177C /* Adium.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = C4B81AF419E087C500E9177C /* Adium.framework */; }; + C4B81AF919E15E0D00E9177C /* tg-server.pub in Resources */ = {isa = PBXBuildFile; fileRef = C4B81AF619E0B67600E9177C /* tg-server.pub */; }; + C4BF991C19BB8B4D0038D507 /* binlog.c in Sources */ = {isa = PBXBuildFile; fileRef = C4BF990419BB8B4D0038D507 /* binlog.c */; }; + C4BF991D19BB8B4D0038D507 /* loop.c in Sources */ = {isa = PBXBuildFile; fileRef = C4BF990519BB8B4D0038D507 /* loop.c */; }; + C4BF991E19BB8B4D0038D507 /* msglog.c in Sources */ = {isa = PBXBuildFile; fileRef = C4BF990619BB8B4D0038D507 /* msglog.c */; }; + C4BF991F19BB8B4D0038D507 /* mtproto-client.c in Sources */ = {isa = PBXBuildFile; fileRef = C4BF990719BB8B4D0038D507 /* mtproto-client.c */; }; + C4BF992019BB8B4D0038D507 /* mtproto-common.c in Sources */ = {isa = PBXBuildFile; fileRef = C4BF990819BB8B4D0038D507 /* mtproto-common.c */; }; + C4BF992119BB8B4D0038D507 /* net.c in Sources */ = {isa = PBXBuildFile; fileRef = C4BF990919BB8B4D0038D507 /* net.c */; }; + C4BF992219BB8B4D0038D507 /* queries.c in Sources */ = {isa = PBXBuildFile; fileRef = C4BF990A19BB8B4D0038D507 /* queries.c */; }; + C4BF992319BB8B4D0038D507 /* structures.c in Sources */ = {isa = PBXBuildFile; fileRef = C4BF990B19BB8B4D0038D507 /* structures.c */; }; + C4BF992419BB8B4D0038D507 /* telegram.c in Sources */ = {isa = PBXBuildFile; fileRef = C4BF990C19BB8B4D0038D507 /* telegram.c */; }; + C4BF992519BB8B4D0038D507 /* tools.c in Sources */ = {isa = PBXBuildFile; fileRef = C4BF990D19BB8B4D0038D507 /* tools.c */; }; +/* End PBXBuildFile section */ + +/* Begin PBXFileReference section */ + C410948619BB2D7D0083BF3F /* telegram-adium.AdiumLibpurplePlugin */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = "telegram-adium.AdiumLibpurplePlugin"; sourceTree = BUILT_PRODUCTS_DIR; }; + C410948919BB2D7D0083BF3F /* CoreFoundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreFoundation.framework; path = System/Library/Frameworks/CoreFoundation.framework; sourceTree = SDKROOT; }; + C410948D19BB2D7D0083BF3F /* telegram-adium-Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = "telegram-adium-Info.plist"; sourceTree = ""; }; + C410948F19BB2D7D0083BF3F /* en */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = en; path = en.lproj/InfoPlist.strings; sourceTree = ""; }; + C410949119BB2D7D0083BF3F /* telegram-adium-Prefix.pch */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = "telegram-adium-Prefix.pch"; sourceTree = ""; }; + C410949919BB337A0083BF3F /* TelegramPlugin.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = TelegramPlugin.h; sourceTree = ""; }; + C410949A19BB337A0083BF3F /* TelegramPlugin.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = TelegramPlugin.m; sourceTree = ""; }; + C466937719E703370036A108 /* AppKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = AppKit.framework; path = Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.8.sdk/System/Library/Frameworks/AppKit.framework; sourceTree = DEVELOPER_DIR; }; + C4877C1619BB37EA006FA91F /* TelegramService.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = TelegramService.h; sourceTree = ""; }; + C4877C1719BB37EA006FA91F /* TelegramService.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = TelegramService.m; sourceTree = ""; }; + C4877C1919BB3D91006FA91F /* telegram-purple.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = "telegram-purple.c"; path = "../purple-plugin/telegram-purple.c"; sourceTree = ""; }; + C4877C1B19BB3DA9006FA91F /* telegram-purple.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "telegram-purple.h"; path = "../purple-plugin/telegram-purple.h"; sourceTree = ""; }; + C4877C1C19BB676B006FA91F /* AdiumTelegramAccount.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AdiumTelegramAccount.h; sourceTree = ""; }; + C4877C1D19BB676B006FA91F /* AdiumTelegramAccount.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = AdiumTelegramAccount.m; sourceTree = ""; }; + C4877C1F19BB6D11006FA91F /* telegram.svg */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xml; name = telegram.svg; path = "../purple-plugin/telegram.svg"; sourceTree = ""; }; + C4877C2019BB6D11006FA91F /* telegram.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = telegram.png; path = "../purple-plugin/telegram.png"; sourceTree = ""; }; + C4877C2119BB6D11006FA91F /* telegram16.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = telegram16.png; path = "../purple-plugin/telegram16.png"; sourceTree = ""; }; + C4877C2219BB6D11006FA91F /* telegram22.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = telegram22.png; path = "../purple-plugin/telegram22.png"; sourceTree = ""; }; + C4877C2319BB6D11006FA91F /* telegram48.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = telegram48.png; path = "../purple-plugin/telegram48.png"; sourceTree = ""; }; + C49A915519BBC278001B3DC0 /* libcrypto.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; path = libcrypto.a; sourceTree = ""; }; + C49A915719BBC5C5001B3DC0 /* libz.dylib */ = {isa = PBXFileReference; lastKnownFileType = "compiled.mach-o.dylib"; name = libz.dylib; path = usr/lib/libz.dylib; sourceTree = SDKROOT; }; + C4B81AE219E084B800E9177C /* libglib.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = libglib.framework; path = "../../adium-1.5.10/Frameworks/libglib.framework"; sourceTree = ""; }; + C4B81AE419E084C300E9177C /* libgmodule.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = libgmodule.framework; path = "../../adium-1.5.10/Frameworks/libgmodule.framework"; sourceTree = ""; }; + C4B81AE619E084D500E9177C /* libgobject.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = libgobject.framework; path = "../../adium-1.5.10/Frameworks/libgobject.framework"; sourceTree = ""; }; + C4B81AE819E084DE00E9177C /* libgthread.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = libgthread.framework; path = "../../adium-1.5.10/Frameworks/libgthread.framework"; sourceTree = ""; }; + C4B81AEA19E084E500E9177C /* libintl.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = libintl.framework; path = "../../adium-1.5.10/Frameworks/libintl.framework"; sourceTree = ""; }; + C4B81AEC19E084ED00E9177C /* libmeanwhile.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = libmeanwhile.framework; path = "../../adium-1.5.10/Frameworks/libmeanwhile.framework"; sourceTree = ""; }; + C4B81AEE19E084F600E9177C /* libpurple.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = libpurple.framework; path = "../../adium-1.5.10/Frameworks/libpurple.framework"; sourceTree = ""; }; + C4B81AF019E087AF00E9177C /* AIUtilities.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = AIUtilities.framework; path = "../../../Library/Developer/Xcode/DerivedData/Adium-gdszlkyrczkyzvfhyhsigfyepffb/Build/Products/Debug/AIUtilities.framework"; sourceTree = ""; }; + C4B81AF219E087BA00E9177C /* AdiumLibpurple.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = AdiumLibpurple.framework; path = "../../../Library/Developer/Xcode/DerivedData/Adium-gdszlkyrczkyzvfhyhsigfyepffb/Build/Products/Debug/AdiumLibpurple.framework"; sourceTree = ""; }; + C4B81AF419E087C500E9177C /* Adium.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Adium.framework; path = "../../../Library/Developer/Xcode/DerivedData/Adium-gdszlkyrczkyzvfhyhsigfyepffb/Build/Products/Debug/Adium.framework"; sourceTree = ""; }; + C4B81AF619E0B67600E9177C /* tg-server.pub */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; name = "tg-server.pub"; path = "../tg-server.pub"; sourceTree = ""; }; + C4BF990419BB8B4D0038D507 /* binlog.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = binlog.c; path = ../binlog.c; sourceTree = ""; }; + C4BF990519BB8B4D0038D507 /* loop.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = loop.c; path = ../loop.c; sourceTree = ""; }; + C4BF990619BB8B4D0038D507 /* msglog.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = msglog.c; path = ../msglog.c; sourceTree = ""; }; + C4BF990719BB8B4D0038D507 /* mtproto-client.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = "mtproto-client.c"; path = "../mtproto-client.c"; sourceTree = ""; }; + C4BF990819BB8B4D0038D507 /* mtproto-common.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = "mtproto-common.c"; path = "../mtproto-common.c"; sourceTree = ""; }; + C4BF990919BB8B4D0038D507 /* net.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = net.c; path = ../net.c; sourceTree = ""; }; + C4BF990A19BB8B4D0038D507 /* queries.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = queries.c; path = ../queries.c; sourceTree = ""; }; + C4BF990B19BB8B4D0038D507 /* structures.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = structures.c; path = ../structures.c; sourceTree = ""; }; + C4BF990C19BB8B4D0038D507 /* telegram.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = telegram.c; path = ../telegram.c; sourceTree = ""; }; + C4BF990D19BB8B4D0038D507 /* tools.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = tools.c; path = ../tools.c; sourceTree = ""; }; + C4BF990E19BB8B4D0038D507 /* binlog.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = binlog.h; path = ../binlog.h; sourceTree = ""; }; + C4BF990F19BB8B4D0038D507 /* constants.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = constants.h; path = ../constants.h; sourceTree = ""; }; + C4BF991019BB8B4D0038D507 /* include.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = include.h; path = ../include.h; sourceTree = ""; }; + C4BF991119BB8B4D0038D507 /* LICENSE.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = LICENSE.h; path = ../LICENSE.h; sourceTree = ""; }; + C4BF991219BB8B4D0038D507 /* loop.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = loop.h; path = ../loop.h; sourceTree = ""; }; + C4BF991319BB8B4D0038D507 /* msglog.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = msglog.h; path = ../msglog.h; sourceTree = ""; }; + C4BF991419BB8B4D0038D507 /* mtproto-client.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = "mtproto-client.h"; path = "../mtproto-client.h"; sourceTree = ""; }; + C4BF991519BB8B4D0038D507 /* net.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = net.h; path = ../net.h; sourceTree = ""; }; + C4BF991619BB8B4D0038D507 /* no-preview.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = "no-preview.h"; path = "../no-preview.h"; sourceTree = ""; }; + C4BF991719BB8B4D0038D507 /* queries.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = queries.h; path = ../queries.h; sourceTree = ""; }; + C4BF991819BB8B4D0038D507 /* structures.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = structures.h; path = ../structures.h; sourceTree = ""; }; + C4BF991919BB8B4D0038D507 /* telegram.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = telegram.h; path = ../telegram.h; sourceTree = ""; }; + C4BF991A19BB8B4D0038D507 /* tools.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = tools.h; path = ../tools.h; sourceTree = ""; }; + C4BF991B19BB8B4D0038D507 /* tree.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = tree.h; path = ../tree.h; sourceTree = ""; }; +/* End PBXFileReference section */ + +/* Begin PBXFrameworksBuildPhase section */ + C410948319BB2D7D0083BF3F /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + C466937819E703370036A108 /* AppKit.framework in Frameworks */, + C49A915819BBC5C5001B3DC0 /* libz.dylib in Frameworks */, + C49A915619BBC278001B3DC0 /* libcrypto.a in Frameworks */, + C4B81AE519E084C300E9177C /* libgmodule.framework in Frameworks */, + C4B81AF319E087BA00E9177C /* AdiumLibpurple.framework in Frameworks */, + C4B81AEB19E084E500E9177C /* libintl.framework in Frameworks */, + C4B81AE319E084B800E9177C /* libglib.framework in Frameworks */, + C4B81AF519E087C500E9177C /* Adium.framework in Frameworks */, + C410948A19BB2D7D0083BF3F /* CoreFoundation.framework in Frameworks */, + C4B81AEF19E084F600E9177C /* libpurple.framework in Frameworks */, + C4B81AF119E087AF00E9177C /* AIUtilities.framework in Frameworks */, + C4B81AED19E084ED00E9177C /* libmeanwhile.framework in Frameworks */, + C4B81AE919E084DE00E9177C /* libgthread.framework in Frameworks */, + C4B81AE719E084D500E9177C /* libgobject.framework in Frameworks */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXFrameworksBuildPhase section */ + +/* Begin PBXGroup section */ + C410947D19BB2D7D0083BF3F = { + isa = PBXGroup; + children = ( + C410949919BB337A0083BF3F /* TelegramPlugin.h */, + C410949A19BB337A0083BF3F /* TelegramPlugin.m */, + C4877C1619BB37EA006FA91F /* TelegramService.h */, + C4877C1719BB37EA006FA91F /* TelegramService.m */, + C4877C1C19BB676B006FA91F /* AdiumTelegramAccount.h */, + C4877C1D19BB676B006FA91F /* AdiumTelegramAccount.m */, + C4BF990319BB8B200038D507 /* telegram-purple */, + C4BF992619BB8B530038D507 /* telegram */, + C410948B19BB2D7D0083BF3F /* telegram-adium */, + C410948819BB2D7D0083BF3F /* Frameworks */, + C410948719BB2D7D0083BF3F /* Products */, + C4877C2919BB6D22006FA91F /* Resources */, + ); + sourceTree = ""; + }; + C410948719BB2D7D0083BF3F /* Products */ = { + isa = PBXGroup; + children = ( + C410948619BB2D7D0083BF3F /* telegram-adium.AdiumLibpurplePlugin */, + ); + name = Products; + sourceTree = ""; + }; + C410948819BB2D7D0083BF3F /* Frameworks */ = { + isa = PBXGroup; + children = ( + C466937719E703370036A108 /* AppKit.framework */, + C4B81AE419E084C300E9177C /* libgmodule.framework */, + C4B81AE219E084B800E9177C /* libglib.framework */, + C4B81AF419E087C500E9177C /* Adium.framework */, + C4B81AF219E087BA00E9177C /* AdiumLibpurple.framework */, + C4B81AF019E087AF00E9177C /* AIUtilities.framework */, + C4B81AEE19E084F600E9177C /* libpurple.framework */, + C4B81AEC19E084ED00E9177C /* libmeanwhile.framework */, + C4B81AEA19E084E500E9177C /* libintl.framework */, + C4B81AE819E084DE00E9177C /* libgthread.framework */, + C4B81AE619E084D500E9177C /* libgobject.framework */, + C49A915719BBC5C5001B3DC0 /* libz.dylib */, + C49A915519BBC278001B3DC0 /* libcrypto.a */, + C410948919BB2D7D0083BF3F /* CoreFoundation.framework */, + ); + name = Frameworks; + sourceTree = ""; + }; + C410948B19BB2D7D0083BF3F /* telegram-adium */ = { + isa = PBXGroup; + children = ( + C410948C19BB2D7D0083BF3F /* Supporting Files */, + ); + path = "telegram-adium"; + sourceTree = ""; + }; + C410948C19BB2D7D0083BF3F /* Supporting Files */ = { + isa = PBXGroup; + children = ( + C410948D19BB2D7D0083BF3F /* telegram-adium-Info.plist */, + C410948E19BB2D7D0083BF3F /* InfoPlist.strings */, + C410949119BB2D7D0083BF3F /* telegram-adium-Prefix.pch */, + ); + name = "Supporting Files"; + sourceTree = ""; + }; + C4877C2919BB6D22006FA91F /* Resources */ = { + isa = PBXGroup; + children = ( + C4877C1F19BB6D11006FA91F /* telegram.svg */, + C4877C2019BB6D11006FA91F /* telegram.png */, + C4877C2119BB6D11006FA91F /* telegram16.png */, + C4877C2219BB6D11006FA91F /* telegram22.png */, + C4877C2319BB6D11006FA91F /* telegram48.png */, + ); + name = Resources; + sourceTree = ""; + }; + C4BF990319BB8B200038D507 /* telegram-purple */ = { + isa = PBXGroup; + children = ( + C4877C1B19BB3DA9006FA91F /* telegram-purple.h */, + C4877C1919BB3D91006FA91F /* telegram-purple.c */, + ); + name = "telegram-purple"; + sourceTree = ""; + }; + C4BF992619BB8B530038D507 /* telegram */ = { + isa = PBXGroup; + children = ( + C4B81AF619E0B67600E9177C /* tg-server.pub */, + C4BF990419BB8B4D0038D507 /* binlog.c */, + C4BF990519BB8B4D0038D507 /* loop.c */, + C4BF990619BB8B4D0038D507 /* msglog.c */, + C4BF990719BB8B4D0038D507 /* mtproto-client.c */, + C4BF990819BB8B4D0038D507 /* mtproto-common.c */, + C4BF990919BB8B4D0038D507 /* net.c */, + C4BF990A19BB8B4D0038D507 /* queries.c */, + C4BF990B19BB8B4D0038D507 /* structures.c */, + C4BF990C19BB8B4D0038D507 /* telegram.c */, + C4BF990D19BB8B4D0038D507 /* tools.c */, + C4BF990E19BB8B4D0038D507 /* binlog.h */, + C4BF990F19BB8B4D0038D507 /* constants.h */, + C4BF991019BB8B4D0038D507 /* include.h */, + C4BF991119BB8B4D0038D507 /* LICENSE.h */, + C4BF991219BB8B4D0038D507 /* loop.h */, + C4BF991319BB8B4D0038D507 /* msglog.h */, + C4BF991419BB8B4D0038D507 /* mtproto-client.h */, + C4BF991519BB8B4D0038D507 /* net.h */, + C4BF991619BB8B4D0038D507 /* no-preview.h */, + C4BF991719BB8B4D0038D507 /* queries.h */, + C4BF991819BB8B4D0038D507 /* structures.h */, + C4BF991919BB8B4D0038D507 /* telegram.h */, + C4BF991A19BB8B4D0038D507 /* tools.h */, + C4BF991B19BB8B4D0038D507 /* tree.h */, + ); + name = telegram; + sourceTree = ""; + }; +/* End PBXGroup section */ + +/* Begin PBXNativeTarget section */ + C410948519BB2D7D0083BF3F /* telegram-adium */ = { + isa = PBXNativeTarget; + buildConfigurationList = C410949419BB2D7D0083BF3F /* Build configuration list for PBXNativeTarget "telegram-adium" */; + buildPhases = ( + C410948219BB2D7D0083BF3F /* Sources */, + C410948319BB2D7D0083BF3F /* Frameworks */, + C410948419BB2D7D0083BF3F /* Resources */, + ); + buildRules = ( + ); + dependencies = ( + ); + name = "telegram-adium"; + productName = "telegram-adium"; + productReference = C410948619BB2D7D0083BF3F /* telegram-adium.AdiumLibpurplePlugin */; + productType = "com.apple.product-type.bundle"; + }; +/* End PBXNativeTarget section */ + +/* Begin PBXProject section */ + C410947E19BB2D7D0083BF3F /* Project object */ = { + isa = PBXProject; + attributes = { + LastUpgradeCheck = 0510; + ORGANIZATIONNAME = "Matthias Jentsch"; + }; + buildConfigurationList = C410948119BB2D7D0083BF3F /* Build configuration list for PBXProject "telegram-adium" */; + compatibilityVersion = "Xcode 3.2"; + developmentRegion = English; + hasScannedForEncodings = 0; + knownRegions = ( + en, + ); + mainGroup = C410947D19BB2D7D0083BF3F; + productRefGroup = C410948719BB2D7D0083BF3F /* Products */; + projectDirPath = ""; + projectRoot = ""; + targets = ( + C410948519BB2D7D0083BF3F /* telegram-adium */, + ); + }; +/* End PBXProject section */ + +/* Begin PBXResourcesBuildPhase section */ + C410948419BB2D7D0083BF3F /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + C4B81AF919E15E0D00E9177C /* tg-server.pub in Resources */, + C410949019BB2D7D0083BF3F /* InfoPlist.strings in Resources */, + C4877C2619BB6D11006FA91F /* telegram16.png in Resources */, + C4877C2519BB6D11006FA91F /* telegram.png in Resources */, + C4877C2419BB6D11006FA91F /* telegram.svg in Resources */, + C4877C2819BB6D11006FA91F /* telegram48.png in Resources */, + C4877C2719BB6D11006FA91F /* telegram22.png in Resources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXResourcesBuildPhase section */ + +/* Begin PBXSourcesBuildPhase section */ + C410948219BB2D7D0083BF3F /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + C4BF992219BB8B4D0038D507 /* queries.c in Sources */, + C4BF991C19BB8B4D0038D507 /* binlog.c in Sources */, + C4877C1819BB37EA006FA91F /* TelegramService.m in Sources */, + C4BF992519BB8B4D0038D507 /* tools.c in Sources */, + C4BF991F19BB8B4D0038D507 /* mtproto-client.c in Sources */, + C4877C1A19BB3D91006FA91F /* telegram-purple.c in Sources */, + C4BF992319BB8B4D0038D507 /* structures.c in Sources */, + C4BF992019BB8B4D0038D507 /* mtproto-common.c in Sources */, + C4BF992419BB8B4D0038D507 /* telegram.c in Sources */, + C4BF991D19BB8B4D0038D507 /* loop.c in Sources */, + C410949B19BB337A0083BF3F /* TelegramPlugin.m in Sources */, + C4877C1E19BB676B006FA91F /* AdiumTelegramAccount.m in Sources */, + C4BF991E19BB8B4D0038D507 /* msglog.c in Sources */, + C4BF992119BB8B4D0038D507 /* net.c in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXSourcesBuildPhase section */ + +/* Begin PBXVariantGroup section */ + C410948E19BB2D7D0083BF3F /* InfoPlist.strings */ = { + isa = PBXVariantGroup; + children = ( + C410948F19BB2D7D0083BF3F /* en */, + ); + name = InfoPlist.strings; + sourceTree = ""; + }; +/* End PBXVariantGroup section */ + +/* Begin XCBuildConfiguration section */ + C410949219BB2D7D0083BF3F /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; + CLANG_CXX_LIBRARY = "libc++"; + CLANG_ENABLE_MODULES = YES; + CLANG_ENABLE_OBJC_ARC = YES; + CLANG_WARN_BOOL_CONVERSION = YES; + CLANG_WARN_CONSTANT_CONVERSION = YES; + CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; + CLANG_WARN_EMPTY_BODY = YES; + CLANG_WARN_ENUM_CONVERSION = YES; + CLANG_WARN_INT_CONVERSION = YES; + CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; + CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; + COPY_PHASE_STRIP = NO; + GCC_C_LANGUAGE_STANDARD = gnu99; + GCC_DYNAMIC_NO_PIC = NO; + GCC_ENABLE_OBJC_EXCEPTIONS = YES; + GCC_OPTIMIZATION_LEVEL = 0; + GCC_PREPROCESSOR_DEFINITIONS = ( + "DEBUG=1", + "$(inherited)", + ); + GCC_SYMBOLS_PRIVATE_EXTERN = NO; + GCC_WARN_64_TO_32_BIT_CONVERSION = YES; + GCC_WARN_ABOUT_DEPRECATED_FUNCTIONS = NO; + GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; + GCC_WARN_UNDECLARED_SELECTOR = YES; + GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; + GCC_WARN_UNUSED_FUNCTION = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + MACOSX_DEPLOYMENT_TARGET = 10.8; + ONLY_ACTIVE_ARCH = YES; + SDKROOT = macosx; + }; + name = Debug; + }; + C410949319BB2D7D0083BF3F /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; + CLANG_CXX_LIBRARY = "libc++"; + CLANG_ENABLE_MODULES = YES; + CLANG_ENABLE_OBJC_ARC = YES; + CLANG_WARN_BOOL_CONVERSION = YES; + CLANG_WARN_CONSTANT_CONVERSION = YES; + CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; + CLANG_WARN_EMPTY_BODY = YES; + CLANG_WARN_ENUM_CONVERSION = YES; + CLANG_WARN_INT_CONVERSION = YES; + CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; + CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; + COPY_PHASE_STRIP = YES; + DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; + ENABLE_NS_ASSERTIONS = NO; + GCC_C_LANGUAGE_STANDARD = gnu99; + GCC_ENABLE_OBJC_EXCEPTIONS = YES; + GCC_WARN_64_TO_32_BIT_CONVERSION = YES; + GCC_WARN_ABOUT_DEPRECATED_FUNCTIONS = NO; + GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; + GCC_WARN_UNDECLARED_SELECTOR = YES; + GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; + GCC_WARN_UNUSED_FUNCTION = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + MACOSX_DEPLOYMENT_TARGET = 10.8; + SDKROOT = macosx; + }; + name = Release; + }; + C410949519BB2D7D0083BF3F /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = YES; + COMBINE_HIDPI_IMAGES = YES; + CONFIGURATION_BUILD_DIR = "$(HOME)/Library/Application Support/Adium 2.0/PlugIns/"; + DEPLOYMENT_LOCATION = YES; + DEPLOYMENT_POSTPROCESSING = YES; + FRAMEWORK_SEARCH_PATHS = ( + "$(inherited)", + "/Users/matj/Library/Developer/Xcode/DerivedData/Adium-gdwrwbgfopymlzesvaaamabjdyym", + "/Users/matj/Development/adium-1.5.10/Frameworks", + "/Users/matj/Development/adium-1.5.10/build/Debug", + "$(USER_LIBRARY_DIR)/Developer/Xcode/DerivedData/Adium-gdszlkyrczkyzvfhyhsigfyepffb/Build/Products/Debug", + ); + GCC_PRECOMPILE_PREFIX_HEADER = YES; + GCC_PREFIX_HEADER = "telegram-adium/telegram-adium-Prefix.pch"; + HEADER_SEARCH_PATHS = ( + "$(inherited)", + /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/include, + "/Users/matj/Development/adium-1.5.10/Frameworks/libpurple.framework/Headers", + "/Users/matj/Development/adium-1.5.10/Frameworks/libglib.framework/Headers/glib", + "/Users/matj/Development/adium-1.5.10/Frameworks/libglib.framework/Headers", + ); + INFOPLIST_FILE = "telegram-adium/telegram-adium-Info.plist"; + INSTALL_PATH = "$(HOME)/Library/Application Support/Adium 2.0/PlugIns/"; + LIBRARY_SEARCH_PATHS = ( + "$(inherited)", + "$(PROJECT_DIR)", + ); + OTHER_CFLAGS = "-DPURPLE_STATIC_PRPL"; + PRODUCT_NAME = "$(TARGET_NAME)"; + SDKROOT = macosx10.8; + WRAPPER_EXTENSION = AdiumLibpurplePlugin; + }; + name = Debug; + }; + C410949619BB2D7D0083BF3F /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = YES; + COMBINE_HIDPI_IMAGES = YES; + CONFIGURATION_BUILD_DIR = "$(HOME)/Library/Application Support/Adium 2.0/PlugIns/"; + DEPLOYMENT_LOCATION = YES; + DEPLOYMENT_POSTPROCESSING = YES; + FRAMEWORK_SEARCH_PATHS = ( + "$(inherited)", + "/Users/matj/Library/Developer/Xcode/DerivedData/Adium-gdwrwbgfopymlzesvaaamabjdyym", + "/Users/matj/Development/adium-1.5.10/Frameworks", + "/Users/matj/Development/adium-1.5.10/build/Debug", + "$(USER_LIBRARY_DIR)/Developer/Xcode/DerivedData/Adium-gdszlkyrczkyzvfhyhsigfyepffb/Build/Products/Debug", + ); + GCC_PRECOMPILE_PREFIX_HEADER = YES; + GCC_PREFIX_HEADER = "telegram-adium/telegram-adium-Prefix.pch"; + HEADER_SEARCH_PATHS = ( + "$(inherited)", + /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/include, + "/Users/matj/Development/adium-1.5.10/Frameworks/libpurple.framework/Headers", + "/Users/matj/Development/adium-1.5.10/Frameworks/libglib.framework/Headers/glib", + "/Users/matj/Development/adium-1.5.10/Frameworks/libglib.framework/Headers", + ); + INFOPLIST_FILE = "telegram-adium/telegram-adium-Info.plist"; + INSTALL_PATH = "$(HOME)/Library/Application Support/Adium 2.0/PlugIns/"; + LIBRARY_SEARCH_PATHS = ( + "$(inherited)", + "$(PROJECT_DIR)", + ); + OTHER_CFLAGS = "-DPURPLE_STATIC_PRPL"; + PRODUCT_NAME = "$(TARGET_NAME)"; + SDKROOT = macosx10.8; + WRAPPER_EXTENSION = AdiumLibpurplePlugin; + }; + name = Release; + }; +/* End XCBuildConfiguration section */ + +/* Begin XCConfigurationList section */ + C410948119BB2D7D0083BF3F /* Build configuration list for PBXProject "telegram-adium" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + C410949219BB2D7D0083BF3F /* Debug */, + C410949319BB2D7D0083BF3F /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Debug; + }; + C410949419BB2D7D0083BF3F /* Build configuration list for PBXNativeTarget "telegram-adium" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + C410949519BB2D7D0083BF3F /* Debug */, + C410949619BB2D7D0083BF3F /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Debug; + }; +/* End XCConfigurationList section */ + }; + rootObject = C410947E19BB2D7D0083BF3F /* Project object */; +} diff --git a/telegram-adium/telegram-adium.xcodeproj/project.xcworkspace/contents.xcworkspacedata b/telegram-adium/telegram-adium.xcodeproj/project.xcworkspace/contents.xcworkspacedata new file mode 100644 index 0000000..595620b --- /dev/null +++ b/telegram-adium/telegram-adium.xcodeproj/project.xcworkspace/contents.xcworkspacedata @@ -0,0 +1,7 @@ + + + + + diff --git a/telegram-adium/telegram-adium.xcodeproj/project.xcworkspace/xcshareddata/telegram-adium.xccheckout b/telegram-adium/telegram-adium.xcodeproj/project.xcworkspace/xcshareddata/telegram-adium.xccheckout new file mode 100644 index 0000000..041fe29 --- /dev/null +++ b/telegram-adium/telegram-adium.xcodeproj/project.xcworkspace/xcshareddata/telegram-adium.xccheckout @@ -0,0 +1,41 @@ + + + + + IDESourceControlProjectFavoriteDictionaryKey + + IDESourceControlProjectIdentifier + 1C5A3335-4726-410A-8E70-801C8879E269 + IDESourceControlProjectName + telegram-adium + IDESourceControlProjectOriginsDictionary + + 2BAF9F6AF710B4D765F611851696219A50533669 + ssh://bitbucket.org/telegrampurple/telegram-purple.git + + IDESourceControlProjectPath + telegram-adium/telegram-adium.xcodeproj/project.xcworkspace + IDESourceControlProjectRelativeInstallPathDictionary + + 2BAF9F6AF710B4D765F611851696219A50533669 + ../../.. + + IDESourceControlProjectURL + ssh://bitbucket.org/telegrampurple/telegram-purple.git + IDESourceControlProjectVersion + 111 + IDESourceControlProjectWCCIdentifier + 2BAF9F6AF710B4D765F611851696219A50533669 + IDESourceControlProjectWCConfigurations + + + IDESourceControlRepositoryExtensionIdentifierKey + public.vcs.git + IDESourceControlWCCIdentifierKey + 2BAF9F6AF710B4D765F611851696219A50533669 + IDESourceControlWCCName + telegram-purple + + + + diff --git a/telegram-adium/telegram-adium.xcodeproj/xcuserdata/matj.xcuserdatad/xcschemes/telegram-adium.xcscheme b/telegram-adium/telegram-adium.xcodeproj/xcuserdata/matj.xcuserdatad/xcschemes/telegram-adium.xcscheme new file mode 100644 index 0000000..843ae82 --- /dev/null +++ b/telegram-adium/telegram-adium.xcodeproj/xcuserdata/matj.xcuserdatad/xcschemes/telegram-adium.xcscheme @@ -0,0 +1,71 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/telegram-adium/telegram-adium.xcodeproj/xcuserdata/matj.xcuserdatad/xcschemes/xcschememanagement.plist b/telegram-adium/telegram-adium.xcodeproj/xcuserdata/matj.xcuserdatad/xcschemes/xcschememanagement.plist new file mode 100644 index 0000000..6742db5 --- /dev/null +++ b/telegram-adium/telegram-adium.xcodeproj/xcuserdata/matj.xcuserdatad/xcschemes/xcschememanagement.plist @@ -0,0 +1,22 @@ + + + + + SchemeUserState + + telegram-adium.xcscheme + + orderHint + 0 + + + SuppressBuildableAutocreation + + C410948519BB2D7D0083BF3F + + primary + + + + + diff --git a/telegram-adium/telegram-adium/en.lproj/InfoPlist.strings b/telegram-adium/telegram-adium/en.lproj/InfoPlist.strings new file mode 100644 index 0000000..477b28f --- /dev/null +++ b/telegram-adium/telegram-adium/en.lproj/InfoPlist.strings @@ -0,0 +1,2 @@ +/* Localized versions of Info.plist keys */ + diff --git a/telegram-adium/telegram-adium/telegram-adium-Info.plist b/telegram-adium/telegram-adium/telegram-adium-Info.plist new file mode 100644 index 0000000..4e10af7 --- /dev/null +++ b/telegram-adium/telegram-adium/telegram-adium-Info.plist @@ -0,0 +1,50 @@ + + + + + AIMinimumAdiumVersionRequirement + 1.4 + CFBundleDevelopmentRegion + English + CFBundleExecutable + ${EXECUTABLE_NAME} + CFBundleIconFile + + CFBundleIdentifier + org.telegram-purple.${PRODUCT_NAME:rfc1034identifier} + CFBundleInfoDictionaryVersion + 6.0 + CFBundleName + ${PRODUCT_NAME} + CFBundlePackageType + BNDL + CFBundleShortVersionString + 0.3.3 + CFBundleSignature + AdIM + CFBundleVersion + 1 + CFPlugInDynamicRegisterFunction + + CFPlugInDynamicRegistration + NO + CFPlugInFactories + + 00000000-0000-0000-0000-000000000000 + MyFactoryFunction + + CFPlugInTypes + + 00000000-0000-0000-0000-000000000000 + + 00000000-0000-0000-0000-000000000000 + + + CFPlugInUnloadFunction + + NSHumanReadableCopyright + Copyright © 2014 Matthias Jentsch. All rights reserved. + NSPrincipalClass + TelegramPlugin + + diff --git a/telegram-adium/telegram-adium/telegram-adium-Prefix.pch b/telegram-adium/telegram-adium/telegram-adium-Prefix.pch new file mode 100644 index 0000000..6f065c1 --- /dev/null +++ b/telegram-adium/telegram-adium/telegram-adium-Prefix.pch @@ -0,0 +1,14 @@ +// +// Prefix header +// +// The contents of this file are implicitly included at the beginning of every source file. +// + +#ifdef __OBJC__ + #import + #import +#endif + +#ifndef __ADIUM_ + #define __ADIUM_ +#endif \ No newline at end of file