EaseConvertToCommonEmoticonsHelper.m 21 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545
  1. /************************************************************
  2. * * Hyphenate CONFIDENTIAL
  3. * __________________
  4. * Copyright (C) 2016 Hyphenate Inc. All rights reserved.
  5. *
  6. * NOTICE: All information contained herein is, and remains
  7. * the property of Hyphenate Inc.
  8. * Dissemination of this information or reproduction of this material
  9. * is strictly forbidden unless prior written permission is obtained
  10. * from Hyphenate Inc.
  11. */
  12. #import "EaseConvertToCommonEmoticonsHelper.h"
  13. #import "EaseEmoji.h"
  14. @implementation EaseConvertToCommonEmoticonsHelper
  15. #pragma mark - emotics
  16. + (NSString *)convertToCommonEmoticons:(NSString *)text
  17. {
  18. int allEmoticsCount = (int)[EaseEmoji allEmoji].count;
  19. NSMutableString *retText = [[NSMutableString alloc] initWithString:text];
  20. for(int i=0; i<allEmoticsCount; ++i) {
  21. NSRange range;
  22. range.location = 0;
  23. range.length = retText.length;
  24. [retText replaceOccurrencesOfString:@"😊"
  25. withString:@"[):]"
  26. options:NSLiteralSearch
  27. range:range];
  28. range.location = 0;
  29. range.length = retText.length;
  30. [retText replaceOccurrencesOfString:@"😃"
  31. withString:@"[:D]"
  32. options:NSLiteralSearch
  33. range:range];
  34. range.location = 0;
  35. range.length = retText.length;
  36. [retText replaceOccurrencesOfString:@"😉"
  37. withString:@"[;)]"
  38. options:NSLiteralSearch
  39. range:range];
  40. range.location = 0;
  41. range.length = retText.length;
  42. [retText replaceOccurrencesOfString:@"😮"
  43. withString:@"[:-o]"
  44. options:NSLiteralSearch
  45. range:range];
  46. range.location = 0;
  47. range.length = retText.length;
  48. [retText replaceOccurrencesOfString:@"😋"
  49. withString:@"[:p]"
  50. options:NSLiteralSearch
  51. range:range];
  52. range.location = 0;
  53. range.length = retText.length;
  54. [retText replaceOccurrencesOfString:@"😎"
  55. withString:@"[(H)]"
  56. options:NSLiteralSearch
  57. range:range];
  58. range.location = 0;
  59. range.length = retText.length;
  60. [retText replaceOccurrencesOfString:@"😡"
  61. withString:@"[:@]"
  62. options:NSLiteralSearch
  63. range:range];
  64. range.location = 0;
  65. range.length = retText.length;
  66. [retText replaceOccurrencesOfString:@"😖"
  67. withString:@"[:s]"
  68. options:NSLiteralSearch
  69. range:range];
  70. range.location = 0;
  71. range.length = retText.length;
  72. [retText replaceOccurrencesOfString:@"😳"
  73. withString:@"[:$]"
  74. options:NSLiteralSearch
  75. range:range];
  76. range.location = 0;
  77. range.length = retText.length;
  78. [retText replaceOccurrencesOfString:@"😞"
  79. withString:@"[:(]"
  80. options:NSLiteralSearch
  81. range:range];
  82. range.location = 0;
  83. range.length = retText.length;
  84. [retText replaceOccurrencesOfString:@"😭"
  85. withString:@"[:'(]"
  86. options:NSLiteralSearch
  87. range:range];
  88. range.location = 0;
  89. range.length = retText.length;
  90. [retText replaceOccurrencesOfString:@"😐"
  91. withString:@"[:|]"
  92. options:NSLiteralSearch
  93. range:range];
  94. range.location = 0;
  95. range.length = retText.length;
  96. [retText replaceOccurrencesOfString:@"😇"
  97. withString:@"[(a)]"
  98. options:NSLiteralSearch
  99. range:range];
  100. range.location = 0;
  101. range.length = retText.length;
  102. [retText replaceOccurrencesOfString:@"😬"
  103. withString:@"[8o|]"
  104. options:NSLiteralSearch
  105. range:range];
  106. range.location = 0;
  107. range.length = retText.length;
  108. [retText replaceOccurrencesOfString:@"😆"
  109. withString:@"[8-|]"
  110. options:NSLiteralSearch
  111. range:range];
  112. range.location = 0;
  113. range.length = retText.length;
  114. [retText replaceOccurrencesOfString:@"😱"
  115. withString:@"[+o(]"
  116. options:NSLiteralSearch
  117. range:range];
  118. range.location = 0;
  119. range.length = retText.length;
  120. [retText replaceOccurrencesOfString:@"🎅"
  121. withString:@"[<o)]"
  122. options:NSLiteralSearch
  123. range:range];
  124. range.location = 0;
  125. range.length = retText.length;
  126. [retText replaceOccurrencesOfString:@"😴"
  127. withString:@"[|-)]"
  128. options:NSLiteralSearch
  129. range:range];
  130. range.location = 0;
  131. range.length = retText.length;
  132. [retText replaceOccurrencesOfString:@"😕"
  133. withString:@"[*-)]"
  134. options:NSLiteralSearch
  135. range:range];
  136. range.location = 0;
  137. range.length = retText.length;
  138. [retText replaceOccurrencesOfString:@"😷"
  139. withString:@"[:-#]"
  140. options:NSLiteralSearch
  141. range:range];
  142. range.location = 0;
  143. range.length = retText.length;
  144. [retText replaceOccurrencesOfString:@"😯"
  145. withString:@"[:-*]"
  146. options:NSLiteralSearch
  147. range:range];
  148. range.location = 0;
  149. range.length = retText.length;
  150. [retText replaceOccurrencesOfString:@"😏"
  151. withString:@"[^o)]"
  152. options:NSLiteralSearch
  153. range:range];
  154. range.location = 0;
  155. range.length = retText.length;
  156. [retText replaceOccurrencesOfString:@"😑"
  157. withString:@"[8-)]"
  158. options:NSLiteralSearch
  159. range:range];
  160. range.location = 0;
  161. range.length = retText.length;
  162. [retText replaceOccurrencesOfString:@"💖"
  163. withString:@"[(|)]"
  164. options:NSLiteralSearch
  165. range:range];
  166. range.location = 0;
  167. range.length = retText.length;
  168. [retText replaceOccurrencesOfString:@"💔"
  169. withString:@"[(u)]"
  170. options:NSLiteralSearch
  171. range:range];
  172. range.location = 0;
  173. range.length = retText.length;
  174. [retText replaceOccurrencesOfString:@"🌙"
  175. withString:@"[(S)]"
  176. options:NSLiteralSearch
  177. range:range];
  178. range.location = 0;
  179. range.length = retText.length;
  180. [retText replaceOccurrencesOfString:@"🌟"
  181. withString:@"[(*)]"
  182. options:NSLiteralSearch
  183. range:range];
  184. range.location = 0;
  185. range.length = retText.length;
  186. [retText replaceOccurrencesOfString:@"🌞"
  187. withString:@"[(#)]"
  188. options:NSLiteralSearch
  189. range:range];
  190. range.location = 0;
  191. range.length = retText.length;
  192. [retText replaceOccurrencesOfString:@"🌈"
  193. withString:@"[(R)]"
  194. options:NSLiteralSearch
  195. range:range];
  196. range.location = 0;
  197. range.length = retText.length;
  198. [retText replaceOccurrencesOfString:@"😚"
  199. withString:@"[(})]"
  200. options:NSLiteralSearch
  201. range:range];
  202. range.location = 0;
  203. range.length = retText.length;
  204. [retText replaceOccurrencesOfString:@"😍"
  205. withString:@"[({)]"
  206. options:NSLiteralSearch
  207. range:range];
  208. range.location = 0;
  209. range.length = retText.length;
  210. [retText replaceOccurrencesOfString:@"💋"
  211. withString:@"[(k)]"
  212. options:NSLiteralSearch
  213. range:range];
  214. range.location = 0;
  215. range.length = retText.length;
  216. [retText replaceOccurrencesOfString:@"🌹"
  217. withString:@"[(F)]"
  218. options:NSLiteralSearch
  219. range:range];
  220. range.location = 0;
  221. range.length = retText.length;
  222. [retText replaceOccurrencesOfString:@"🍂"
  223. withString:@"[(W)]"
  224. options:NSLiteralSearch
  225. range:range];
  226. range.location = 0;
  227. range.length = retText.length;
  228. [retText replaceOccurrencesOfString:@"👍"
  229. withString:@"[(D)]"
  230. options:NSLiteralSearch
  231. range:range];
  232. }
  233. return retText;
  234. }
  235. + (NSString *)convertToSystemEmoticons:(NSString *)text
  236. {
  237. if (![text isKindOfClass:[NSString class]]) {
  238. return @"";
  239. }
  240. if ([text length] == 0) {
  241. return @"";
  242. }
  243. int allEmoticsCount = (int)[[EaseEmoji allEmoji] count];
  244. NSMutableString *retText = [[NSMutableString alloc] initWithString:text];
  245. for(int i=0; i<allEmoticsCount; ++i) {
  246. NSRange range;
  247. range.location = 0;
  248. range.length = retText.length;
  249. [retText replaceOccurrencesOfString:@"[):]"
  250. withString:@"😊"
  251. options:NSLiteralSearch
  252. range:range];
  253. range.location = 0;
  254. range.length = retText.length;
  255. [retText replaceOccurrencesOfString:@"[:D]"
  256. withString:@"😃"
  257. options:NSLiteralSearch
  258. range:range];
  259. range.location = 0;
  260. range.length = retText.length;
  261. [retText replaceOccurrencesOfString:@"[;)]"
  262. withString:@"😉"
  263. options:NSLiteralSearch
  264. range:range];
  265. range.location = 0;
  266. range.length = retText.length;
  267. [retText replaceOccurrencesOfString:@"[:-o]"
  268. withString:@"😮"
  269. options:NSLiteralSearch
  270. range:range];
  271. range.location = 0;
  272. range.length = retText.length;
  273. [retText replaceOccurrencesOfString:@"[:p]"
  274. withString:@"😋"
  275. options:NSLiteralSearch
  276. range:range];
  277. range.location = 0;
  278. range.length = retText.length;
  279. [retText replaceOccurrencesOfString:@"[(H)]"
  280. withString:@"😎"
  281. options:NSLiteralSearch
  282. range:range];
  283. range.location = 0;
  284. range.length = retText.length;
  285. [retText replaceOccurrencesOfString:@"[:@]"
  286. withString:@"😡"
  287. options:NSLiteralSearch
  288. range:range];
  289. range.location = 0;
  290. range.length = retText.length;
  291. [retText replaceOccurrencesOfString:@"[:s]"
  292. withString:@"😖"
  293. options:NSLiteralSearch
  294. range:range];
  295. range.location = 0;
  296. range.length = retText.length;
  297. [retText replaceOccurrencesOfString:@"[:$]"
  298. withString:@"😳"
  299. options:NSLiteralSearch
  300. range:range];
  301. range.location = 0;
  302. range.length = retText.length;
  303. [retText replaceOccurrencesOfString:@"[:(]"
  304. withString:@"😞"
  305. options:NSLiteralSearch
  306. range:range];
  307. range.location = 0;
  308. range.length = retText.length;
  309. [retText replaceOccurrencesOfString:@"[:'(]"
  310. withString:@"😭"
  311. options:NSLiteralSearch
  312. range:range];
  313. range.location = 0;
  314. range.length = retText.length;
  315. [retText replaceOccurrencesOfString:@"[:|]"
  316. withString:@"😐"
  317. options:NSLiteralSearch
  318. range:range];
  319. range.location = 0;
  320. range.length = retText.length;
  321. [retText replaceOccurrencesOfString:@"[(a)]"
  322. withString:@"😇"
  323. options:NSLiteralSearch
  324. range:range];
  325. range.location = 0;
  326. range.length = retText.length;
  327. [retText replaceOccurrencesOfString:@"[8o|]"
  328. withString:@"😬"
  329. options:NSLiteralSearch
  330. range:range];
  331. range.location = 0;
  332. range.length = retText.length;
  333. [retText replaceOccurrencesOfString:@"[8-|]"
  334. withString:@"😆"
  335. options:NSLiteralSearch
  336. range:range];
  337. range.location = 0;
  338. range.length = retText.length;
  339. [retText replaceOccurrencesOfString:@"[+o(]"
  340. withString:@"😱"
  341. options:NSLiteralSearch
  342. range:range];
  343. range.location = 0;
  344. range.length = retText.length;
  345. [retText replaceOccurrencesOfString:@"[<o)]"
  346. withString:@"🎅"
  347. options:NSLiteralSearch
  348. range:range];
  349. range.location = 0;
  350. range.length = retText.length;
  351. [retText replaceOccurrencesOfString:@"[|-)]"
  352. withString:@"😴"
  353. options:NSLiteralSearch
  354. range:range];
  355. range.location = 0;
  356. range.length = retText.length;
  357. [retText replaceOccurrencesOfString:@"[*-)]"
  358. withString:@"😕"
  359. options:NSLiteralSearch
  360. range:range];
  361. range.location = 0;
  362. range.length = retText.length;
  363. [retText replaceOccurrencesOfString:@"[:-#]"
  364. withString:@"😷"
  365. options:NSLiteralSearch
  366. range:range];
  367. range.location = 0;
  368. range.length = retText.length;
  369. [retText replaceOccurrencesOfString:@"[:-*]"
  370. withString:@"😯"
  371. options:NSLiteralSearch
  372. range:range];
  373. range.location = 0;
  374. range.length = retText.length;
  375. [retText replaceOccurrencesOfString:@"[^o)]"
  376. withString:@"😏"
  377. options:NSLiteralSearch
  378. range:range];
  379. range.location = 0;
  380. range.length = retText.length;
  381. [retText replaceOccurrencesOfString:@"[8-)]"
  382. withString:@"😑"
  383. options:NSLiteralSearch
  384. range:range];
  385. range.location = 0;
  386. range.length = retText.length;
  387. [retText replaceOccurrencesOfString:@"[(|)]"
  388. withString:@"💖"
  389. options:NSLiteralSearch
  390. range:range];
  391. range.location = 0;
  392. range.length = retText.length;
  393. [retText replaceOccurrencesOfString:@"[(u)]"
  394. withString:@"💔"
  395. options:NSLiteralSearch
  396. range:range];
  397. range.location = 0;
  398. range.length = retText.length;
  399. [retText replaceOccurrencesOfString:@"[(S)]"
  400. withString:@"🌙"
  401. options:NSLiteralSearch
  402. range:range];
  403. range.location = 0;
  404. range.length = retText.length;
  405. [retText replaceOccurrencesOfString:@"[(*)]"
  406. withString:@"🌟"
  407. options:NSLiteralSearch
  408. range:range];
  409. range.location = 0;
  410. range.length = retText.length;
  411. [retText replaceOccurrencesOfString:@"[(#)]"
  412. withString:@"🌞"
  413. options:NSLiteralSearch
  414. range:range];
  415. range.location = 0;
  416. range.length = retText.length;
  417. [retText replaceOccurrencesOfString:@"[(R)]"
  418. withString:@"🌈"
  419. options:NSLiteralSearch
  420. range:range];
  421. range.location = 0;
  422. range.length = retText.length;
  423. [retText replaceOccurrencesOfString:@"[(})]"
  424. withString:@"😚"
  425. options:NSLiteralSearch
  426. range:range];
  427. range.location = 0;
  428. range.length = retText.length;
  429. [retText replaceOccurrencesOfString:@"[({)]"
  430. withString:@"😍"
  431. options:NSLiteralSearch
  432. range:range];
  433. range.location = 0;
  434. range.length = retText.length;
  435. [retText replaceOccurrencesOfString:@"[(k)]"
  436. withString:@"💋"
  437. options:NSLiteralSearch
  438. range:range];
  439. range.location = 0;
  440. range.length = retText.length;
  441. [retText replaceOccurrencesOfString:@"[(F)]"
  442. withString:@"🌹"
  443. options:NSLiteralSearch
  444. range:range];
  445. range.location = 0;
  446. range.length = retText.length;
  447. [retText replaceOccurrencesOfString:@"[(W)]"
  448. withString:@"🍂"
  449. options:NSLiteralSearch
  450. range:range];
  451. range.location = 0;
  452. range.length = retText.length;
  453. [retText replaceOccurrencesOfString:@"[(D)]"
  454. withString:@"👍"
  455. options:NSLiteralSearch
  456. range:range];
  457. }
  458. return retText;
  459. }
  460. @end