home *** CD-ROM | disk | FTP | other *** search
/ PC World Komputer 2010 April / PCWorld0410.iso / pluginy Firefox / 9866 / 9866.xpi / modules / rss / samfind_modrssutils.jsm < prev   
Encoding:
Text File  |  2009-09-22  |  5.8 KB  |  81 lines

  1. //-------------------------------------------------------------------------------------------
  2. // RSS utils module.
  3. //-------------------------------------------------------------------------------------------
  4.  
  5. const Cc = Components.classes;
  6. const Ci = Components.interfaces;
  7.  
  8. var EXPORTED_SYMBOLS = ["samfind_modrssutils"];
  9.  
  10. var samfind_modrssutils =
  11. {
  12.     _html_entities : null,
  13.     _html_decimals : null,
  14.  
  15.     _init : function()
  16.     {
  17.         samfind_modrssutils._html_entities = new Array(' ','¡','¢','£','¤','¥','¦','§','¨','©','ª','«','¬','­','®','¯','°','±','²','³','´','µ','¶','·','¸','¹','º','»','¼','½','¾','¿','À','Á','Â','Ã','Ä','Å','&Aelig;','Ç','È','É','Ê','Ë','Ì','Í','Î','Ï','Ð','Ñ','Ò','Ó','Ô','Õ','Ö','×','Ø','Ù','Ú','Û','Ü','Ý','Þ','ß','à','á','â','ã','ä','å','æ','ç','è','é','ê','ë','ì','í','î','ï','ð','ñ','ò','ó','ô','õ','ö','÷','ø','ù','ú','û','ü','ý','þ','ÿ','"','&','<','>','œ','œ','Š','š','Ÿ','ˆ','˜',' ',' ',' ','‌','‍','‎','‏','–','—','‘','’','‚','“','”','„','†','‡','‰','‹','›','€','ƒ','Α','Β','Γ','Δ','Ε','Ζ','Η','Θ','Ι','Κ','Λ','Μ','Ν','Ξ','Ο','Π','Ρ','Σ','Τ','Υ','Φ','Χ','Ψ','Ω','α','β','γ','δ','ε','ζ','η','θ','ι','κ','λ','μ','ν','ξ','ο','π','ρ','ς','σ','τ','υ','φ','χ','ψ','ω','ϑ','ϒ','ϖ','•','…','′','″','‾','⁄','℘','ℑ','ℜ','™','ℵ','←','↑','→','↓','↔','↵','⇐','⇑','⇒','⇓','⇔','∀','∂','∃','∅','∇','∈','∉','∋','∏','∑','−','∗','√','∝','∞','∠','∧','∨','∩','∪','∫','∴','∼','≅','≈','≠','≡','≤','≥','⊂','⊃','⊄','⊆','⊇','⊕','⊗','⊥','⋅','⌈','⌉','⌊','⌋','⟨','⟩','◊','♠','♣','♥','♦');
  18.         samfind_modrssutils._html_decimals = new Array(
  19. '160','161','162','163','164','165','166','167','168','169','170','171','172','173','174','175','176','177','178','179','180','181','182','183','184','185','186','187','188','189','190','191','192','193','194','195','196','197','198','199','200','201','202','203','204','205','206','207','208','209','210','211','212','213','214','215','216','217','218','219','220','221','222','223','224','225','226','227','228','229','230','231','232','233','234','235','236','237','238','239','240','241','242','243','244','245','246','247','248','249','250','251','252','253','254','255','34','38','60','62','338','339','352','353','376','710','732','8194','8195','8201','8204','8205','8206','8207','8211','8212','8216','8217','8218','8220','8221','8222','8224','8225','8240','8249','8250','8364','402','913','914','915','916','917','918','919','920','921','922','923','924','925','926','927','928','929','931','932','933','934','935','936','937','945','946','947','948','949','950','951','952','953','954','955','956','957','958','959','960','961','962','963','964','965','966','967','968','969','977','978','982','8226','8230','8242','8243','8254','8260','8472','8465','8476','8482','8501','8592','8593','8594','8595','8596','8629','8656','8657','8658','8659','8660','8704','8706','8707','8709','8711','8712','8713','8715','8719','8721','8722','8727','8730','8733','8734','8736','8743','8744','8745','8746','8747','8756','8764','8773','8776','8800','8801','8804','8805','8834','8835','8836','8838','8839','8853','8855','8869','8901','8968','8969','8970','8971','9001','9002','9674','9824','9827','9829','9830');
  20.     },
  21.  
  22.     HTML2Unicode : function(aStr)
  23.     {
  24.         if (aStr.length == 0)
  25.         {
  26.             return;    
  27.         }
  28.         var count = samfind_modrssutils._html_entities.length;
  29.         var re;
  30.         for (var i=0; i<count; ++i)
  31.         {
  32.             re = new RegExp(samfind_modrssutils._html_entities[i], 'g');
  33.             aStr = aStr.replace(re, String.fromCharCode(samfind_modrssutils._html_decimals[i]));
  34.         }
  35.         return aStr;
  36.     },
  37.  
  38.     HTML2Text : function(aStr)
  39.     {
  40.         var format_converter = Cc["@mozilla.org/widget/htmlformatconverter;1"].createInstance(Ci.nsIFormatConverter);
  41.         var from_str = Cc["@mozilla.org/supports-string;1"].createInstance(Ci.nsISupportsString);
  42.         from_str.data = aStr;
  43.         var toStr = { value: null };
  44.         try
  45.         {
  46.             format_converter.convert("text/html", from_str, from_str.toString().length, "text/unicode", toStr, {});
  47.         }
  48.         catch (e)
  49.         {
  50.             return aStr;
  51.         }
  52.         if (toStr.value)
  53.         {
  54.             toStr = toStr.value.QueryInterface(Ci.nsISupportsString);
  55.             return toStr.toString();
  56.         }
  57.         return aStr;
  58.     },
  59.  
  60.     removeRubbish : function(aStr)
  61.     {
  62.         return aStr.replace(/[-_\*\+=]+/g, " ");
  63.     },
  64.  
  65.     truncate : function(aStr, count)
  66.     {
  67.         var words = aStr.split(/[\s,]+/);
  68.         var popped = false;
  69.         while (words.length > count)
  70.         {
  71.             words.pop();
  72.             popped = true;
  73.         }
  74.         return words.join(" ") + (popped ? "..." : "");
  75.     }
  76. };
  77.  
  78. /**
  79.  * Constructor.
  80.  */
  81. (function() { this._init(); }).apply(samfind_modrssutils);