Changeset 18730

Show
Ignore:
Timestamp:
09/03/08 17:44:55 (5 years ago)
Author:
showyou
Message:

httpと画面更新部分に排他入れた

Files:
1 modified

Legend:

Unmodified
Added
Removed
  • lang/python/crochet/chat_allsrc.py

    r18714 r18730  
    4040""" 
    4141class TwDMHttpFrame(wx.Frame): 
    42         def __init__(self,tw,func): 
     42        def __init__(self,tw,func,lock): 
    4343                self.tw = tw 
    4444                self.func = func 
     45                self.lock = lock 
    4546        def start(self): 
    4647                thread.start_new_thread(self.run, ()) 
    4748        def run(self): 
    4849                #ここに通信処理を書く 
     50                self.lock.acquire() 
    4951                a = self.tw.getDM("") 
    5052                self.func(a) 
     53                self.lock.release() 
    5154""" 
    5255twitterにhttpRequestを投げるスレッド 
    5356""" 
    5457class TwReplyHttpFrame(wx.Frame): 
    55         def __init__(self,tw,func): 
     58        def __init__(self,tw,func,lock): 
    5659                self.tw = tw 
    5760                self.func = func 
     61                self.lock = lock 
    5862        def start(self): 
    5963 
     
    6266        def run(self): 
    6367                #ここに通信処理を書く 
     68                self.lock.acquire()      
    6469                a = self.tw.getReplies("") 
    6570                self.func(a) 
     71                self.lock.release() 
    6672""" 
    6773twitterにhttpRequestを投げるスレッド 
    6874""" 
    6975class TwHttpFrame(wx.Frame): 
    70         def __init__(self,tw,func): 
     76        def __init__(self,tw,func,lock): 
    7177                self.tw = tw 
    7278                self.func = func 
     79                self.lock = lock 
    7380        def start(self): 
    7481                thread.start_new_thread(self.run, ()) 
     
    7784                #ここに通信処理を書く 
    7885                #a = self.tw.get("") 
     86                self.lock.acquire() 
    7987                a = self.tw.getWithScraping("") 
    8088                self.func(a) 
    81  
     89                self.lock.release() 
    8290""" 
    8391カスタムページ(自分でフィルタリングする) 
     
    8694 
    8795        dataList = [] 
    88         def __init__(self, parent): 
     96        def __init__(self, parent,threadLock): 
    8997                 
    9098                self.owner = parent 
     99                self.lock = threadLock 
    91100                wx.NotebookPage.__init__(self,parent.getNotebook(),-1) 
    92101                parent.getNotebook().AddPage(self,'DM') 
     
    101110         
    102111        def Reflesh(self): 
    103                 t = TwDMHttpFrame(self.owner.tw,self.RefleshList) 
     112                t = TwDMHttpFrame(self.owner.tw,self.RefleshList,self.lock) 
    104113                t.start() 
    105114""" 
     
    109118 
    110119        dataList = [] 
    111         def __init__(self, parent): 
     120        def __init__(self, parent,threadLock): 
    112121                self.owner = parent 
     122                self.lock = threadLock 
    113123                wx.NotebookPage.__init__(self,parent.getNotebook(),-1) 
    114124                parent.getNotebook().AddPage(self,'Recent') 
     
    205215 
    206216        def Reflesh(self): 
    207                 t = TwHttpFrame(self.owner.tw,self.RefleshList) 
     217                t = TwHttpFrame(self.owner.tw,self.RefleshList,self.lock) 
    208218                t.start() 
    209219         
     
    251261                                self.owner.GetImageListElement(b[4]) 
    252262                        except: 
     263                                #       print "Error:GetImageListElement" 
    253264                                pass 
    254265                        i+=1 
    255266                self.dataList = dataList + self.dataList 
     267                print "end setdataList" 
    256268                #if self.selectRow != -1 :self.selectRow+=len(dataList)  
    257269 
     
    259271 
    260272        dataList = [] 
    261         def __init__(self, parent): 
     273        def __init__(self, parent,threadLock): 
    262274                 
    263275                self.owner = parent 
     276                self.lock = threadLock 
    264277                wx.NotebookPage.__init__(self,parent.getNotebook(),-1) 
    265278                parent.getNotebook().AddPage(self,'Reply') 
     
    274287         
    275288        def Reflesh(self): 
    276                 t = TwReplyHttpFrame(self.owner.tw,self.RefleshList) 
     289                t = TwReplyHttpFrame(self.owner.tw,self.RefleshList,self.lock) 
    277290                t.start() 
    278291 
     
    281294 
    282295        dataList = [] 
    283         def __init__(self, parent): 
     296        def __init__(self, parent,threadLock): 
    284297                 
    285298                self.owner = parent 
     299                self.lock = threadLock 
    286300                wx.NotebookPage.__init__(self,parent.getNotebook(),-1) 
    287301                parent.getNotebook().AddPage(self,'DM') 
     
    296310         
    297311        def Reflesh(self): 
    298                 t = TwDMHttpFrame(self.owner.tw,self.RefleshList) 
     312                t = TwDMHttpFrame(self.owner.tw,self.RefleshList,self.lock) 
    299313                t.start() 
    300314                pass 
     
    335349                notebook = self.notebook = wx.Notebook(self,-1) 
    336350 
    337                 self.recentPage = RecentPage(self) 
    338                 self.replyPage = ReplyPage(self) 
    339                 self.directPage = DMPage(self)  
     351 
     352                self.imageThreadLock = thread.allocate_lock() 
     353                self.httpThreadLock = thread.allocate_lock() 
     354                 
     355                self.recentPage = RecentPage(self,self.httpThreadLock) 
     356                self.replyPage = ReplyPage(self,self.httpThreadLock) 
     357                self.directPage = DMPage(self,self.httpThreadLock)  
    340358 
    341359                inputSizer = wx.BoxSizer(wx.HORIZONTAL) 
     
    392410                self.SetNowTime2StatusBar() 
    393411         
    394                 self.imageThreadLock = thread.allocate_lock() 
     412 
    395413        def OnSendTW(self, event): 
    396414                # 送信する 
     
    464482 
    465483                        #self.userIcon.SetBitmap(self.imageList[unicodeUrl].ConvertToBitmap()) 
    466                         pass 
     484                        return self.imageList[unicodeUrl] 
    467485                else: 
    468486                        self.imageList[unicodeUrl] = ""  
    469487                        self.WebImage2StringIO(url,unicodeUrl) 
    470                 return self.imageList[unicodeUrl] 
     488                return null  
    471489         
    472490        # Web上の画像を引っ張ってくる 
     
    485503 
    486504                from cStringIO import StringIO 
    487  
    488505                image_pil = Image.open(StringIO(imageData)) 
    489506                image_pil.thumbnail((64,64))