home *** CD-ROM | disk | FTP | other *** search
/ Maximum CD 2011 February / maximum-cd-2011-02.iso / DiscContents / digsby_setup85.exe / lib / util / checkoptions.pyo (.txt) < prev    next >
Encoding:
Python Compiled Bytecode  |  2010-11-24  |  7.6 KB  |  201 lines

  1. # Source Generated with Decompyle++
  2. # File: in.pyo (Python 2.6)
  3.  
  4. from __future__ import with_statement
  5. from threads import Timer, threaded
  6. from primitives import traceguard
  7. import stdpaths
  8. import traceback
  9. from logging import getLogger
  10. log = getLogger('check_ffx_prefs')
  11. DIGSBY_SEARCH_URL = 'http://searchbox.digsby.com/search?q={searchTerms}&ie=utf-8&oe=utf-8&aq=t'
  12. CHECK_INTERVAL = 300
  13. SEARCH_LINES = [
  14.     'user_pref("browser.search.defaultenginename", "Google Powered Digsby Search");',
  15.     'user_pref("keyword.URL", "http://searchbox.digsby.com/search?sourceid=navclient&gfns=1&q=");']
  16. HOMEPAGE_LINES = [
  17.     'user_pref("browser.startup.homepage", "http://search.digsby.com");']
  18. DIGSBY_SEARCH_UUID_IE = '{3326ab56-742e-5603-906f-290517220122}'
  19. SEARCH_PLUGIN_TXT = '<?xml version="1.0" encoding="UTF-8"?>\n<OpenSearchDescription xmlns="http://a9.com/-/spec/opensearch/1.1/"\n    xmlns:moz="http://www.mozilla.org/2006/browser/search/">\n    <ShortName>Google Powered Digsby Search</ShortName>\n    <Description>Google Powered Digsby Search</Description>\n    <InputEncoding>UTF-8</InputEncoding>\n    <moz:UpdateUrl>http://digsby.com/digsbysearch.xml</moz:UpdateUrl>\n    <moz:UpdateInterval>7</moz:UpdateInterval>\n    <Image width="16" height="16">data:image/x-icon;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAIAAACQkWg2AAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAaRJREFUeNpiVIg5JRURw0A0YAHio943kYV%2B%2Ff33%2BdvvX7%2F%2FMjEx8nKycrGzwKXOiPKzICvdeezLhCV3jp15%2Bfv%2FX0YGhv8MDDxMX2qKTIw0RK10eYD6QYqATvoPBkt3f5K0W9Ew4fjTFz%2F%2Bw8Dm3W8UPeZxqFa%2BevsFyD0twgfVsOfkRxHrtfV9u5BVQ8Crd98%2FffkGYQM1QJ20%2FfSPv79eNxQGYfpSVJADmcvEAHbr7oOX2dj%2FERNKIA2%2F%2F%2Fz%2FxfCDhYVoDUDw5P6vf9%2B5iY0HVmZGQWm%2BN3fff%2Fn2k4eLHS739x%2FDiRs%2Ff%2F%2F5x8HO%2FOHzN3djfqgNjIwMgc6qzLx%2Fpy47j2zY%2Feff06tXhOUucgxeun33AUZGpHh4%2Bvo7t8EyIJqz%2FhpasD59%2B5dNrqdnznZIsEL9ICXCsWuBCwvTv%2FymS5PWPP32ExEALz%2F%2BB5r848cPCJcRaMP9xaYQzofPPzfuvrnj0Jst%2B5%2F8%2Bc4sLPeDkYlRgJc93VPE18NIXkYUmJYQSQMZ%2FP3379uPH7%2F%2F%2FEETBzqJ0WqLGvFpe2LCC4AAAwAyjg7ENzDDWAAAAABJRU5ErkJggg%3D%3D</Image>\n    <Url type="text/html" method="GET" template="http://searchbox.digsby.com/search?q={searchTerms}&ie=utf-8&oe=utf-8&aq=t" />\n    <Url type="application/x-suggestions+json" method="GET" template="http://suggestqueries.google.com/complete/search?output=firefox&client=firefox&hl={moz:locale}&q={searchTerms}" />\n    <moz:SearchForm>http://searchbox.digsby.com</moz:SearchForm>\n</OpenSearchDescription>'
  20. FFX_EXE = 'firefox.exe'
  21.  
  22. def start_checking():
  23.     log.info('starting checker')
  24.     Timer(0, do_check).start()
  25.  
  26.  
  27. def set_search_active():
  28.     
  29.     try:
  30.         AddGoogleSearchEngine_IE()
  31.     except Exception:
  32.         traceback.print_exc()
  33.  
  34.     
  35.     try:
  36.         
  37.         try:
  38.             f = _[1]
  39.             f.write(' ')
  40.         finally:
  41.             pass
  42.  
  43.     except Exception:
  44.         traceback.print_exc()
  45.         return False
  46.  
  47.     return True
  48.  
  49.  
  50. def set_homepage_active():
  51.     
  52.     try:
  53.         AddGoogleHomePage_IE()
  54.     except Exception:
  55.         traceback.print_exc()
  56.  
  57.     
  58.     try:
  59.         
  60.         try:
  61.             f = _[1]
  62.             f.write(' ')
  63.         finally:
  64.             pass
  65.  
  66.     except Exception:
  67.         traceback.print_exc()
  68.         return False
  69.  
  70.     return True
  71.  
  72.  
  73. def _get_search_filepath():
  74.     return stdpaths.userdata / 'dosearch'
  75.  
  76.  
  77. def _get_homepage_filepath():
  78.     return stdpaths.userdata / 'dohomepage'
  79.  
  80.  
  81. def do_check():
  82.     search = _get_search_filepath()
  83.     homepage = _get_homepage_filepath()
  84.     dosearch = search.isfile()
  85.     dohomepage = homepage.isfile()
  86.     log.info('dosearch: %s, dohomepage: %s', dosearch, dohomepage)
  87.     if dosearch or dohomepage:
  88.         if is_ffx_running():
  89.             log.info('ffx was running, checking again in %d seconds', CHECK_INTERVAL)
  90.             Timer(CHECK_INTERVAL, do_check).start()
  91.         else:
  92.             log.info('ffx not running, attempting to write prefs')
  93.             
  94.             try:
  95.                 if dosearch:
  96.                     search.remove()
  97.                 
  98.                 if dohomepage:
  99.                     homepage.remove()
  100.             except Exception:
  101.                 e = None
  102.                 log.info('Error removing search/homepage file(s): %r', e)
  103.  
  104.             do_write(dosearch, dohomepage)
  105.     
  106.  
  107. do_check = threaded(do_check)
  108.  
  109. def do_write(search, homepage):
  110.     search_pth = _get_search_filepath()
  111.     homepage_pth = _get_homepage_filepath()
  112.     for pth in (stdpaths.userconfig / 'Mozilla' / 'Firefox' / 'Profiles').dirs():
  113.         searchplugins = pth / 'searchplugins'
  114.         profileprefs = pth / 'prefs.js'
  115.         if profileprefs.isfile():
  116.             traceguard.__enter__()
  117.             
  118.             try:
  119.                 
  120.                 try:
  121.                     f = _[2]
  122.                     if homepage:
  123.                         log.info('writing homepage prefs')
  124.                         traceguard.__enter__()
  125.                         
  126.                         try:
  127.                             f.writelines(HOMEPAGE_LINES)
  128.                         finally:
  129.                             pass
  130.  
  131.                 finally:
  132.                     pass
  133.  
  134.             finally:
  135.                 pass
  136.  
  137.             continue
  138.         traceguard.__exit__
  139.     
  140.  
  141. do_write = threaded(do_write)
  142.  
  143. def AddGoogleHomePage_IE():
  144.     import _winreg
  145.     traceguard.__enter__()
  146.     
  147.     try:
  148.         k = _winreg.OpenKey(_winreg.HKEY_CURRENT_USER, 'Software\\Microsoft\\Internet Explorer\\Main\\', 0, _winreg.KEY_SET_VALUE)
  149.         _winreg.SetValueEx(k, 'Start Page', None, _winreg.REG_SZ, 'http://search.digsby.com')
  150.         k.Close()
  151.     finally:
  152.         pass
  153.  
  154.  
  155.  
  156. def AddGoogleSearchEngine_IE():
  157.     import _winreg
  158.     traceguard.__enter__()
  159.     
  160.     try:
  161.         k = _winreg.OpenKey(_winreg.HKEY_CURRENT_USER, 'Software\\Microsoft\\Internet Explorer\\SearchScopes\\', 0, _winreg.KEY_ALL_ACCESS)
  162.         _winreg.SetValueEx(k, 'DefaultScope', None, _winreg.REG_SZ, DIGSBY_SEARCH_UUID_IE)
  163.         k2 = _winreg.CreateKey(k, DIGSBY_SEARCH_UUID_IE)
  164.         _winreg.SetValueEx(k2, 'DisplayName', None, _winreg.REG_SZ, 'Google Powered Digsby Search')
  165.         _winreg.SetValueEx(k2, 'URL', None, _winreg.REG_SZ, DIGSBY_SEARCH_URL)
  166.         k3 = _winreg.OpenKey(_winreg.HKEY_CURRENT_USER, 'Software\\Microsoft\\Internet Explorer\\Main', 0, _winreg.KEY_ALL_ACCESS)
  167.         k4 = _winreg.CreateKey(k3, 'Main')
  168.         _winreg.SetValueEx(k4, 'Use Search Asst', None, _winreg.REG_SZ, 'no')
  169.         _winreg.SetValueEx(k4, 'Search Page', None, _winreg.REG_SZ, 'http://searchbox.digsby.com/')
  170.         _winreg.SetValueEx(k4, 'Search Bar', None, _winreg.REG_SZ, 'http://searchbox.digsby.com/ie')
  171.         k.Close()
  172.         k2.Close()
  173.         k3.Close()
  174.         k4.Close()
  175.     finally:
  176.         pass
  177.  
  178.     traceguard.__enter__()
  179.     
  180.     try:
  181.         l = _winreg.OpenKey(_winreg.HKEY_LOCAL_MACHINE, 'SOFTWARE\\Microsoft\\Internet Explorer\\Main', 0, _winreg.KEY_ALL_ACCESS)
  182.         _winreg.SetValueEx(l, 'Search Page', None, _winreg.REG_SZ, 'http://searchbox.digsby.com/')
  183.         l2 = _winreg.OpenKey(_winreg.HKEY_LOCAL_MACHINE, 'SOFTWARE\\Microsoft\\Internet Explorer\\Search', 0, _winreg.KEY_ALL_ACCESS)
  184.         _winreg.SetValueEx(l2, 'SearchAssistant', None, _winreg.REG_SZ, 'http://searchbox.digsby.com/ie')
  185.         l.Close()
  186.         l2.Close()
  187.     finally:
  188.         pass
  189.  
  190.  
  191.  
  192. def is_ffx_running():
  193.     process_list = process_list
  194.     import gui.native.win.process
  195.     return FFX_EXE in process_list()
  196.  
  197. __all__ = [
  198.     'start_checking',
  199.     'set_search_active',
  200.     'set_homepage_active']
  201.