Changeset 409

Show
Ignore:
Timestamp:
02/09/07 00:32:00 (19 months ago)
Author:
daelstorm
Message:

Fix type; disable proper remotely named transfer error messages; Browse: expand searched folders; Chat hotspots

Location:
murmur/trunk/sources
Files:
3 modified

Legend:

Unmodified
Added
Removed
  • murmur/trunk/sources/murmur

    r402 r409  
    5555from threading import Thread 
    5656import gc 
    57  
     57#gc.set_debug(gc.DEBUG_LEAK) 
    5858try: 
    5959        from Crypto.Hash import SHA256 
     
    8888try: 
    8989        from pymurmur.utils import * 
    90  
     90        from pymurmur import utils 
    9191except ImportError, e: 
    9292        print "Failed loading pymurmur utils", e  
     
    14801480class UserBrowse: 
    14811481        def __init__(self, browses, user): 
    1482                 try: 
    1483                         self.frame = browses.frame 
    1484                         self.browses = browses 
    1485                         self.user = user  
    1486                         self.shares = {} 
    1487                         self.selected_files = [] 
    1488                         self.files = {} 
    1489                         self.directories = {} 
    1490                         self.Main = gtk.VBox(False, 0) 
    1491                         self.Main.show() 
    1492                         self.Main.set_spacing(0) 
    1493                         ### Search Shares 
    1494                         self.search_position = 0 
    1495                         self.search_list = [] 
    1496                         self.query = None 
    1497                         ### 
    1498                         hbox1 = gtk.HBox(False, 5) 
    1499                         hbox1.show() 
    1500                         hbox1.set_spacing(5) 
    1501                          
    1502                         label1 = gtk.Label(("Search Shares For:")) 
    1503                         label1.set_padding(5, 0) 
    1504                         label1.show() 
    1505                         hbox1.pack_start(label1, False, False, 5) 
    1506                          
    1507                         self.entry = entry= gtk.Entry() 
    1508                         entry.set_text("") 
    1509                         #entry.set_activates_default(True) 
    1510                         entry.set_editable(True) 
    1511                         entry.connect_object("activate", self.SearchShares, user) 
    1512                         entry.show() 
    1513                         hbox1.pack_start(entry, True, True, 5) 
    1514                          
    1515                         self.searchbutton = self.frame.CreateIconButton(gtk.STOCK_FIND, "stock", self.SearchShares, "Search") 
    1516  
    1517                          
    1518                         hbox1.pack_start(self.searchbutton, False, False, 5) 
    1519                          
    1520                         self.Main.pack_start(hbox1, False, True, 0) 
    1521                          
    1522                         hbox2 = gtk.HBox(False, 0) 
    1523                         hbox2.show() 
    1524                         hbox2.set_spacing(0) 
    1525                          
    1526                         hpaned1 = gtk.HPaned() 
    1527                         hpaned1.show() 
    1528                          
    1529                         self.DirSW = DirSW = gtk.ScrolledWindow() 
    1530                         self.DirSW.set_policy(gtk.POLICY_AUTOMATIC, gtk.POLICY_AUTOMATIC) 
    1531                         self.DirSW.set_size_request(250, -1) 
    1532                         self.DirSW.show() 
    1533                         self.DirSW.set_shadow_type(gtk.SHADOW_IN) 
    1534                          
    1535                          
    1536                         self.DirStore = gtk.TreeStore(  str, str ) 
    1537                          
    1538                         self.DirTreeView = DirTreeView = gtk.TreeView(self.DirStore) 
    1539                         self.DirTreeView.set_property("rules-hint", True) 
    1540                         #DirTreeView.get_selection().set_mode(gtk.SELECTION_MULTIPLE) 
    1541                         DirTreeView.set_headers_visible(True) 
    1542                         cols = InitialiseColumns(self.DirTreeView, 
    1543                                 [_("Directories"), -1, "text"], #0 
    1544                         ) 
    1545                         cols[0].set_sort_column_id(0) 
    1546                         #self.DirTreeView.set_search_column(0) 
    1547                         DirTreeView.show() 
    1548                          
    1549                         #self.DirStore.set_sort_column_id(0, gtk.SORT_ASCENDING) 
    1550                          
    1551                         self.dir_popup_menu = popup = PopupMenu(self.frame, "browse-dirs") 
    1552                         popup.setup( 
    1553                                 ("#" + _("_Download Directory"), popup.OnDownloadDirectory, gtk.STOCK_GO_DOWN), 
    1554                                 ("", None), 
    1555                                 ("#" + _("_Private Message"), popup.OnSendMessage, gtk.STOCK_EDIT), 
    1556                                 ("#" + _("_User Info"), popup.OnGetUserInfo, gtk.STOCK_INFO), 
    1557                                 ("#" + _("IP A_ddress"), popup.OnShowIPaddress, gtk.STOCK_NETWORK), 
    1558                                 ("#" + _("Reload _Shares"), popup.OnBrowseUser, gtk.STOCK_HARDDISK), 
    1559                                 ("$" + _("_Buddy this user"), popup.OnBuddyUser), 
    1560                                 ("$" + _("Ba_n this user"), popup.OnBanUser), 
    1561                                 ("$" + _("_Ignore this user"), popup.OnIgnoreUser), 
    1562                                 ("$" + _("_Trust this user"), popup.OnTrustUser), 
    1563                         ) 
    1564                         DirTreeView.connect("button_press_event", self.OnDirClicked) 
    1565                         DirTreeView.get_selection().connect("changed", self.OnDirSelected) 
    1566                         DirSW.add(DirTreeView) 
    1567  
    1568                          
    1569                         hpaned1.pack1(DirSW, False, False) 
    1570                         self.FilesStore = self.FileStore = gtk.ListStore(  str, str, str, int, str, int ) 
    1571                          
    1572                         self.FilesTreeView = gtk.TreeView(self.FileStore) 
    1573                         self.FilesTreeView.set_property("rules-hint", True) 
    1574                         self.FilesTreeView.set_reorderable(True) 
    1575                         self.FilesTreeView.get_selection().set_mode(gtk.SELECTION_MULTIPLE) 
    1576                         self.FilesTreeView.set_headers_visible(True) 
    1577                          
    1578                         cols = InitialiseColumns(self.FilesTreeView, 
    1579                         [_("Filename"), 250, "text"], #0 
    1580                         [_("Size"), 100, "text"], #1 
    1581                         [_("Length"), 70, "text"], #2 
    1582                         [_("Bitrate"), 70, "text"], #3 
    1583                         ) 
    1584                         #for ix in range(len(cols)): 
    1585                         cols[0].set_sort_column_id(0) 
    1586                         cols[1].set_sort_column_id(5) 
    1587                         cols[2].set_sort_column_id(2) 
    1588                         cols[3].set_sort_column_id(3) 
    1589                          
    1590                         self.files_popup_menu = popup = PopupMenu(self.frame, "browse-files") 
    1591                         popup.setup( 
    1592                                 ("#" + _("Download _File"), popup.OnDownloadFile, gtk.STOCK_GO_DOWN), 
    1593                                 ("#" + _("_Download Directory"), popup.OnDownloadDirectory, gtk.STOCK_GO_DOWN), 
    1594                                 ("", None), 
    1595                                 ("#" + _("_Private Message"), popup.OnSendMessage, gtk.STOCK_EDIT), 
    1596                                 ("#" + _("_User Info"), popup.OnGetUserInfo, gtk.STOCK_INFO), 
    1597                                 ("#" + _("_IP Address"), popup.OnShowIPaddress, gtk.STOCK_NETWORK), 
    1598                                 ("#" + _("Reload _Shares"), popup.OnBrowseUser, gtk.STOCK_HARDDISK), 
    1599                                 ("$" + _("_Buddy this user"), popup.OnBuddyUser), 
    1600                                 ("$" + _("Ba_n this user"), popup.OnBanUser), 
    1601                                 ("$" + _("_Ignore this user"), popup.OnIgnoreUser), 
    1602                                 ("$" + _("_Trust this user"), popup.OnTrustUser), 
    1603                         ) 
    1604                         self.FilesTreeView.connect("button_press_event", self.OnFileClicked) 
    1605                         self.FilesTreeView.show() 
    1606                          
    1607                         self.FilesSW = gtk.ScrolledWindow() 
    1608                         self.FilesSW.set_policy(gtk.POLICY_AUTOMATIC, gtk.POLICY_AUTOMATIC) 
    1609                         self.FilesSW.set_shadow_type(gtk.SHADOW_IN) 
    1610                         self.FilesSW.add(self.FilesTreeView) 
    1611                         self.FilesSW.show() 
    1612                         directory = self.BrowseGetDirs(user) 
    1613                         self.BrowseChangeDir(user, directory) 
    1614                          
    1615                         hpaned1.pack2(self.FilesSW, True, True) 
    1616                          
    1617                         hbox2.pack_start(hpaned1, True, True, 0) 
    1618                          
    1619                         self.Main.pack_start(hbox2, True, True, 0) 
    1620                          
    1621                          
    1622                 except Exception, e: 
    1623                         print "UserBrowse", e 
     1482         
     1483                self.frame = browses.frame 
     1484                self.browses = browses 
     1485                self.user = user  
     1486                self.shares = {} 
     1487                self.selected_files = [] 
     1488                self.files = {} 
     1489                self.directories = {} 
     1490                 
     1491                self.Main = gtk.VBox(False, 0) 
     1492                self.Main.show() 
     1493                self.Main.set_spacing(0) 
     1494                ### Search Shares 
     1495                self.search_position = 0 
     1496                self.search_list = [] 
     1497                self.query = None 
     1498                ### 
     1499                hbox1 = gtk.HBox(False, 5) 
     1500                hbox1.show() 
     1501                hbox1.set_spacing(5) 
     1502                 
     1503                label1 = gtk.Label(("Search Shares For:")) 
     1504                label1.set_padding(5, 0) 
     1505                label1.show() 
     1506                hbox1.pack_start(label1, False, False, 5) 
     1507                 
     1508                self.entry = entry= gtk.Entry() 
     1509                entry.set_text("") 
     1510                #entry.set_activates_default(True) 
     1511                entry.set_editable(True) 
     1512                entry.connect_object("activate", self.SearchShares, user) 
     1513                entry.show() 
     1514                hbox1.pack_start(entry, True, True, 5) 
     1515                 
     1516                self.searchbutton = self.frame.CreateIconButton(gtk.STOCK_FIND, "stock", self.SearchShares, "Search") 
     1517 
     1518                 
     1519                hbox1.pack_start(self.searchbutton, False, False, 5) 
     1520                 
     1521                self.Main.pack_start(hbox1, False, True, 0) 
     1522                 
     1523                hbox2 = gtk.HBox(False, 0) 
     1524                hbox2.show() 
     1525                hbox2.set_spacing(0) 
     1526                 
     1527                hpaned1 = gtk.HPaned() 
     1528                hpaned1.show() 
     1529                 
     1530                self.DirSW = DirSW = gtk.ScrolledWindow() 
     1531                self.DirSW.set_policy(gtk.POLICY_AUTOMATIC, gtk.POLICY_AUTOMATIC) 
     1532                self.DirSW.set_size_request(250, -1) 
     1533                self.DirSW.show() 
     1534                self.DirSW.set_shadow_type(gtk.SHADOW_IN) 
     1535                 
     1536                 
     1537                self.DirStore = gtk.TreeStore(  str, str ) 
     1538                 
     1539                self.DirTreeView = DirTreeView = gtk.TreeView(self.DirStore) 
     1540                #self.DirTreeView.set_property("rules-hint", True) 
     1541                self.DirTreeView.set_enable_tree_lines(True) 
     1542                #DirTreeView.get_selection().set_mode(gtk.SELECTION_MULTIPLE) 
     1543                DirTreeView.set_headers_visible(True) 
     1544                cols = InitialiseColumns(self.DirTreeView, 
     1545                        [_("Directories"), -1, "text"], #0 
     1546                ) 
     1547                cols[0].set_sort_column_id(0) 
     1548                #self.DirTreeView.set_search_column(0) 
     1549                DirTreeView.show() 
     1550                 
     1551                #self.DirStore.set_sort_column_id(0, gtk.SORT_ASCENDING) 
     1552                 
     1553                self.dir_popup_menu = popup = PopupMenu(self.frame, "browse-dirs") 
     1554                popup.setup( 
     1555                        ("#" + _("_Download Directory"), popup.OnDownloadDirectory, gtk.STOCK_GO_DOWN), 
     1556                        ("", None), 
     1557                        ("#" + _("_Private Message"), popup.OnSendMessage, gtk.STOCK_EDIT), 
     1558                        ("#" + _("_User Info"), popup.OnGetUserInfo, gtk.STOCK_INFO), 
     1559                        ("#" + _("IP A_ddress"), popup.OnShowIPaddress, gtk.STOCK_NETWORK), 
     1560                        ("#" + _("Reload _Shares"), popup.OnBrowseUser, gtk.STOCK_HARDDISK), 
     1561                        ("$" + _("_Buddy this user"), popup.OnBuddyUser), 
     1562                        ("$" + _("Ba_n this user"), popup.OnBanUser), 
     1563                        ("$" + _("_Ignore this user"), popup.OnIgnoreUser), 
     1564                        ("$" + _("_Trust this user"), popup.OnTrustUser), 
     1565                ) 
     1566                self.dir_popup_menu.set_user(user) 
     1567                DirTreeView.connect("button_press_event", self.OnDirClicked) 
     1568                DirTreeView.get_selection().connect("changed", self.OnDirSelected) 
     1569                DirSW.add(DirTreeView) 
     1570 
     1571                 
     1572                hpaned1.pack1(DirSW, False, False) 
     1573                self.FilesStore = self.FileStore = gtk.ListStore(  str, str, str, int, str, int ) 
     1574                 
     1575                self.FilesTreeView = gtk.TreeView(self.FileStore) 
     1576                self.FilesTreeView.set_property("rules-hint", True) 
     1577                self.FilesTreeView.set_reorderable(True) 
     1578                self.FilesTreeView.get_selection().set_mode(gtk.SELECTION_MULTIPLE) 
     1579                self.FilesTreeView.set_headers_visible(True) 
     1580                 
     1581                cols = InitialiseColumns(self.FilesTreeView, 
     1582                [_("Filename"), 250, "text"], #0 
     1583                [_("Size"), 100, "text"], #1 
     1584                [_("Length"), 70, "text"], #2 
     1585                [_("Bitrate"), 70, "text"], #3 
     1586                ) 
     1587                #for ix in range(len(cols)): 
     1588                cols[0].set_sort_column_id(0) 
     1589                cols[1].set_sort_column_id(5) 
     1590                cols[2].set_sort_column_id(2) 
     1591                cols[3].set_sort_column_id(3) 
     1592                 
     1593                self.files_popup_menu = popup = PopupMenu(self.frame, "browse-files") 
     1594                popup.setup( 
     1595                        ("#" + _("Download _File"), popup.OnDownloadFile, gtk.STOCK_GO_DOWN), 
     1596                        ("#" + _("_Download Directory"), popup.OnDownloadDirectory, gtk.STOCK_GO_DOWN), 
     1597                        ("", None), 
     1598                        ("#" + _("_Private Message"), popup.OnSendMessage, gtk.STOCK_EDIT), 
     1599                        ("#" + _("_User Info"), popup.OnGetUserInfo, gtk.STOCK_INFO), 
     1600                        ("#" + _("_IP Address"), popup.OnShowIPaddress, gtk.STOCK_NETWORK), 
     1601                        ("#" + _("Reload _Shares"), popup.OnBrowseUser, gtk.STOCK_HARDDISK), 
     1602                        ("$" + _("_Buddy this user"), popup.OnBuddyUser), 
     1603                        ("$" + _("Ba_n this user"), popup.OnBanUser), 
     1604                        ("$" + _("_Ignore this user"), popup.OnIgnoreUser), 
     1605                        ("$" + _("_Trust this user"), popup.OnTrustUser), 
     1606                ) 
     1607                self.files_popup_menu.set_user(user) 
     1608                self.FilesTreeView.connect("button_press_event", self.OnFileClicked) 
     1609                self.FilesTreeView.show() 
     1610                 
     1611                self.FilesSW = gtk.ScrolledWindow() 
     1612                self.FilesSW.set_policy(gtk.POLICY_AUTOMATIC, gtk.POLICY_AUTOMATIC) 
     1613                self.FilesSW.set_shadow_type(gtk.SHADOW_IN) 
     1614                self.FilesSW.add(self.FilesTreeView) 
     1615                self.FilesSW.show() 
     1616                directory = self.BrowseGetDirs(user) 
     1617                self.BrowseChangeDir(user, directory) 
     1618                 
     1619                hpaned1.pack2(self.FilesSW, True, True) 
     1620                 
     1621                hbox2.pack_start(hpaned1, True, True, 0) 
     1622                 
     1623                self.Main.pack_start(hbox2, True, True, 0) 
     1624                         
     1625                 
    16241626        def OnDirSelected(self, selection): 
    16251627                model, iter = selection.get_selected() 
     
    16531655                menu.set_directory(directory) 
    16541656                num = 6 
    1655                 menu.set_user(user) 
     1657                 
    16561658                 
    16571659                if self.frame.Networking.config != {}: 
     
    16671669        def OnFileClicked(self, widget, event): 
    16681670         
    1669                 if event.button != 3: 
    1670                  
    1671                         return 
    1672                  
    1673                 self.OnFilePopupMenu(widget, event) 
     1671                if event.button == 3: 
     1672                        self.OnFilePopupMenu(widget, event) 
     1673 
     1674                 
     1675                 
    16741676                 
    16751677        def OnFilePopupMenu(self, widget, event): 
    16761678 
    1677                 user = self.user 
    1678                 menu = self.files_popup_menu 
    1679                 items = menu.get_children() 
     1679                items = self.files_popup_menu.get_children() 
    16801680                self.FilesTreeView.get_selection().selected_foreach(self.SelectedFilesCallback) 
    16811681                if DEBUG == True:  print "-- Popup -- :" 
     
    16881688                file = self.FileStore.get_value(self.FileStore.get_iter(path), 0) 
    16891689                directory = self.FileStore.get_value(self.FileStore.get_iter(path), 4) 
    1690                 menu.set_file(file) 
    1691                 menu.set_directory(directory) 
     1690                self.files_popup_menu.set_file(file) 
     1691                self.files_popup_menu.set_directory(directory) 
    16921692                num = 7 
    16931693 
    1694                 menu.set_user(user) 
    1695                  
    16961694                if self.frame.Networking.config != {}: 
    16971695                        items[num].set_active(self.frame.Networking.config["buddies"].has_key(user)) 
     
    16991697                        items[num+2].set_active(self.frame.Networking.config["ignored"].has_key(user)) 
    17001698                        items[num+3].set_active(self.frame.Networking.config["trusted"].has_key(user)) 
    1701                 menu.popup(None, None, None, event.button, event.time) 
    1702                 self.FilesTreeView.emit_stop_by_name("button_press_event") 
     1699 
     1700                self.files_popup_menu.popup(None, None, None, event.button, event.time) 
    17031701                return True 
    17041702                 
     
    17281726                         
    17291727        def OnClose(self, user): 
    1730                 self.browses.remove_page(self.Main) 
    1731                 del self.browses.users[self.user] 
    1732                 self.Main.destroy() 
    1733                  
     1728                self.browses.RemoveTab(self) 
     1729                #self.browses.remove_page(self.Main) 
     1730                #del self.browses.users[self.user] 
     1731                #self.Main.destroy() 
     1732                #print self 
     1733                #del self 
     1734                #for i in gc.garbage: 
     1735                        #print "GB", i 
     1736                #gc.collect() 
     1737                #for i in gc.get_objects(): 
     1738                        #print i 
    17341739        def SearchShares(self, user): 
    17351740                query = self.entry.get_text() 
     
    17601765                        self.search_list.sort() 
    17611766                        directory = self.search_list[self.search_position] 
    1762                         self.BrowseChangeDir(user, directory) 
     1767                        #self.BrowseChangeDir(user, directory) 
    17631768                        ## Set directory position to be the searched directory 
    17641769                        self.DirTreeView.set_cursor(self.DirStore.get_path(self.directories[directory])) 
     1770                         
    17651771                        # Get matching files in the current directory 
    17661772                        resultfiles = [] 
     
    18341840                self.FileStore.clear() 
    18351841                self.files = {} 
     1842                if not self.shares.has_key(directory): 
     1843                        return 
     1844                path = self.DirStore.get_path( self.directories[directory] ) 
     1845                self.DirTreeView.expand_to_path(path) 
    18361846                #file, stats[ size, ftype, [bitrate, length ] ] 
    18371847                if directory in self.shares: 
     
    18521862                # Finish 
    18531863                self.FileStore.set_sort_column_id(0, gtk.SORT_ASCENDING) 
    1854                  
    18551864                         
    18561865class UserBrowses(IconNotebook): 
     
    18861895                del self.users[tab.user] 
    18871896                tab.Main.destroy() 
     1897                del tab 
     1898                gc.collect() 
     1899                 
    18881900class UserInfo: 
    18891901        def __init__(self, infos, user): 
     
    33543366                self.changecolour(self.tag_me, "chatme") 
    33553367                self.changecolour(self.tag_hilite, "chathilite") 
    3356                 self.changecolour(self.tag_username, color) 
    3357                 self.setStatus() 
     3368                #self.changecolour(self.tag_username, color) 
     3369                #self.setStatus() 
    33583370                 
    33593371        def OnPopupMenuRoom(self, widget, event, string, string2): 
     
    37443756                 
    37453757        def append(self, transfer): 
    3746                 iters =  self.store.append( [transfer.user, transfer.path.split("\\")[-1], self.frame.Humanize(transfer.rate), self.states[transfer.state], self.frame.Humanize(transfer.filepos), self.frame.Humanize( transfer.filesize),   transfer.path]) 
     3758                if transfer.state == 14: 
     3759                        state = transfer.error 
     3760                else: 
     3761                        state = self.states[transfer.state] 
     3762                iters =  self.store.append( [transfer.user, transfer.path.split("\\")[-1], self.frame.Humanize(transfer.rate), state, self.frame.Humanize(transfer.filepos), self.frame.Humanize( transfer.filesize),   transfer.path]) 
    37473763                self.downloads[(transfer.user, transfer.path)] =  iters 
    37483764                #[transfer.is_upload, transfer.user, transfer.path, int(transfer.state), transfer.error, transfer.filepos, transfer.filesize, transfer.rate] 
     
    37513767                user_path = (transfer.user, transfer.path) 
    37523768                if user_path in self.downloads: 
    3753                         self.store.set(self.downloads[user_path], 0, transfer.user, 1, transfer.path.split("\\")[-1], 2,  self.frame.Humanize(transfer.rate), 3 ,self.states[transfer.state], 4, self.frame.Humanize(transfer.filepos),  5, self.frame.Humanize(transfer.filesize),  6, transfer.path) 
     3769                        if transfer.state == 14: 
     3770                                state = transfer.error 
     3771                        else: 
     3772                                state = self.states[transfer.state] 
     3773                        self.store.set(self.downloads[user_path], 0, transfer.user, 1, transfer.path.split("\\")[-1], 2,  self.frame.Humanize(transfer.rate), 3 ,state, 4, self.frame.Humanize(transfer.filepos),  5, self.frame.Humanize(transfer.filesize),  6, transfer.path) 
    37543774                else: 
    37553775                        self.append(transfer) 
     
    49544974 
    49554975                self.MurmurWindow.show_all() 
     4976                utils.USERNAMEHOTSPOTS = 1 
    49564977                 
    49574978                 
     
    51525173                        #win = Settings(self,  modal=modal) 
    51535174                        win = self.Settings 
    5154                         win.set_title("MuTray Setttings") 
     5175                        win.set_title("MuTray Settings") 
    51555176 
    51565177                        win.read_config() 
  • murmur/trunk/sources/pymurmur/settings.py

    r393 r409  
    101101         
    102102        self.quit() 
     103         
    103104class Settings( gtk.Dialog): 
    104105        def __init__(self, xapp, message="", modal= True): 
  • murmur/trunk/sources/pymurmur/utils.py

    r402 r409  
    1919CATCH_URLS = 1 
    2020HUMANIZE_URLS = 0 
    21          
     21USERNAMEHOTSPOTS = 0 
     22 
    2223import gettext 
    2324tr_cache = {} 
     
    133134                urltag = _makeurltag(buffer, tag, url) 
    134135                line = line[match.end()-1:] 
    135                 _append(buffer, start, tag) 
     136                 
     137                if USERNAMEHOTSPOTS and username != None and usertag != None: 
     138                        np = re.compile(username) 
     139                        match = np.search(start) 
     140                        if match != None: 
     141                                start2 = start[:match.start()] 
     142                                name = match.group()[:] 
     143                                start = start[match.end():] 
     144                                _append(buffer, start2, tag) 
     145                                _append(buffer, name, usertag) 
     146                                _append(buffer, start, tag) 
     147                        else: 
     148                                _append(buffer, start, tag) 
     149                else: 
     150                        _append(buffer, start, tag) 
    136151                if url.startswith("slsk://") and HUMANIZE_URLS: 
    137152                        url = url.replace("%20", " ") 
     
    142157        if line: 
    143158                 
    144                 if username != None and usertag != None: 
     159                if USERNAMEHOTSPOTS and username != None and usertag != None: 
    145160                        np = re.compile(username) 
    146161                        match = np.search(line)