예제 #1
0
  def __init__(self, controller):
    buttons = (gtk.STOCK_YES, gtk.RESPONSE_YES, gtk.STOCK_NO, gtk.RESPONSE_NO)
    dia = gtk.Dialog("Credits Low", None, 0, buttons)
    self.controller = controller
    
    vbox = gtk.VBox()
    
    title = gtk.Label()
    markup = "<span size='large' weight='bold'>You Are Running out of Credits</span>"
    title.set_markup(markup)
    title.set_justify(gtk.JUSTIFY_CENTER)
    vbox.pack_start(title, True, False, 0)
    
    #A text entry telling the user what to do:
    balance = Bank.get().get_expected_balance()
    balanceGB = Format.convert_to_gb(balance)
    label = gtk.Label()
    text = "You only have %s (%s) credits remaining.  You must set up a relay to gain more credits.  \
This will allow other users to send traffic via your computer.\n\nWould you like to set up a relay now?" % (balance, balanceGB)
    label.set_markup(text)
    label.set_line_wrap(True)
    vbox.pack_start(label, True, True, 5)
    
    #if we should always check:
    self.askAboutRelay = gtk.CheckButton("Always ask about help setting up relay")
    vbox.pack_start(self.askAboutRelay, True, True, 10)
    #initialize the checkbox:
    self.askAboutRelay.set_active(CoreSettings.get().askAboutRelay)

    vbox = GTKUtils.add_padding(vbox, 5)
    dia.vbox.pack_start(vbox, True, True, 0)
    dia.connect("response", self.on_response)
    self.dia = dia
    #start the dialog
    dia.show_all()
예제 #2
0
    def on_update(self):
        """updates the gui via pulling infos out of tor and the bank-
    slow, stupid, and easy"""
        # don't do updates if we arent visible
        if not GTKUtils.is_visible(self.container):
            return

        configuredAsRelay = self.torApp.is_server()
        if configuredAsRelay:
            self.relayRow.update_row_image(True)
        else:
            self.relayRow.reset_row_image()

        relayStatus, relayStateString = self.torApp.get_relay_status()
        if self.torApp.is_server():
            self.statusRow.update_row_image(relayStatus)
        else:
            self.statusRow.reset_row_image()
        self.statusRow.widget.set_markup('<span size="large">%s</span>' % (relayStateString))

        # update as appropriate for rows when we are trying to be a relay
        if configuredAsRelay:
            boolToStringMapping = {True: "is reachable", False: "is unreachable", None: "testing..."}
            # do updates where we have the info
            relayPortsState = self.torApp.get_all_port_status()
            for row in self.statusRows:
                updateForGUIPort = row.rowName in relayPortsState
                if updateForGUIPort:
                    port = relayPortsState[row.rowName]
                    row.update_row_image(port[0])
                    statusText = boolToStringMapping[port[0]]
                    row.widget.set_markup('<span size="large">%s %s</span>' % (port[1], statusText))
        # else, null  everything out
        else:
            for row in [self.udpRelayPortRow, self.tcpRelayPortRow, self.dirPortRow, self.statusRow]:
                row.reset_row_image()
                row.widget.set_markup('<span size="large">offline</span>')

        # update the balance
        bank = Bank.get()
        if not bank:
            return
        credits = bank.get_expected_balance()
        if not credits:
            return
        self.creditsRow.widget.set_markup(
            '<span size="large">%s  (%s)</span>' % (credits, Format.convert_to_gb(credits))
        )
        if credits > 200:
            creditState = True
        elif credits > 100:
            creditState = None
        else:
            creditState = False
        self.creditsRow.update_row_image(creditState)
예제 #3
0
 def on_update(self):
   """updates the gui via pulling infos out of tor and the bank-
   slow, stupid, and easy"""
   #don't do updates if we arent visible
   if not GTKUtils.is_visible(self.container):
     return
   
   configuredAsRelay = self.torApp.is_server()
   if configuredAsRelay:
     self.relayRow.update_row_image(True)
   else:
     self.relayRow.reset_row_image()
   
   relayStatus, relayStateString = self.torApp.get_relay_status()
   if self.torApp.is_server():
     self.statusRow.update_row_image(relayStatus)
   else:
     self.statusRow.reset_row_image()
   self.statusRow.widget.set_markup('<span size="large">%s</span>' % (relayStateString))
   
   #update as appropriate for rows when we are trying to be a relay
   if configuredAsRelay:
     boolToStringMapping = {True: 'is reachable', False: 'is unreachable', None: 'testing...'}
     #do updates where we have the info
     relayPortsState = self.torApp.get_all_port_status()
     for row in self.statusRows:
       updateForGUIPort = row.rowName in relayPortsState
       if updateForGUIPort:
         port = relayPortsState[row.rowName]
         row.update_row_image(port[0])
         statusText = boolToStringMapping[port[0]]
         row.widget.set_markup('<span size="large">%s %s</span>' % (port[1], statusText))
   #else, null  everything out
   else:
     for row in [self.udpRelayPortRow, self.tcpRelayPortRow, self.dirPortRow, self.statusRow]:
       row.reset_row_image()
       row.widget.set_markup('<span size="large">offline</span>')
   
   #update the balance
   bank = Bank.get()
   if not bank:
     return
   credits = bank.get_expected_balance()
   if not credits:
     return
   self.creditsRow.widget.set_markup('<span size="large">%s  (%s)</span>'%\
                      (credits, Format.convert_to_gb(credits)))
   if credits > 200:
     creditState = True
   elif credits > 100:
     creditState = None
   else:
     creditState = False
   self.creditsRow.update_row_image(creditState)
예제 #4
0
 def update(self, globalDownRate, globalUpRate, globalDownAmount, globalUpAmount):
   if self.btApp.is_ready():
     try:
       nodes = self.btApp.btInstance.dht.get_dht_peers()
     except:
       nodes = ("unknown", "disabled")
     self.dhtText.set_markup('<span>DHT Nodes:  %s (%s)</span>' % nodes)
   globalDownRate = Format.bytes_per_second(globalDownRate)
   globalDownAmount = Format.format_bytes(globalDownAmount)
   self.downText.set_markup('<span>U:  %s  %s</span>' % (globalDownRate, globalDownAmount))
   globalUpRate = Format.bytes_per_second(globalUpRate)
   globalUpAmount = Format.format_bytes(globalUpAmount)
   self.upText.set_markup('<span>D:  %s  %s</span>' % (globalUpRate, globalUpAmount))
   credits = Bank.get().get_total_asset_value()
   self.creditText.set_markup('<span>Credits:  %s (%s)</span>' % (credits, Format.convert_to_gb(credits)))
예제 #5
0
 def update(self, globalDownRate, globalUpRate, globalDownAmount,
            globalUpAmount):
     if self.btApp.is_ready():
         try:
             nodes = self.btApp.btInstance.dht.get_dht_peers()
         except:
             nodes = ("unknown", "disabled")
         self.dhtText.set_markup('<span>DHT Nodes:  %s (%s)</span>' % nodes)
     globalDownRate = Format.bytes_per_second(globalDownRate)
     globalDownAmount = Format.format_bytes(globalDownAmount)
     self.downText.set_markup('<span>U:  %s  %s</span>' %
                              (globalDownRate, globalDownAmount))
     globalUpRate = Format.bytes_per_second(globalUpRate)
     globalUpAmount = Format.format_bytes(globalUpAmount)
     self.upText.set_markup('<span>D:  %s  %s</span>' %
                            (globalUpRate, globalUpAmount))
     credits = Bank.get().get_total_asset_value()
     self.creditText.set_markup('<span>Credits:  %s (%s)</span>' %
                                (credits, Format.convert_to_gb(credits)))
예제 #6
0
    def __init__(self, controller):
        buttons = (gtk.STOCK_YES, gtk.RESPONSE_YES, gtk.STOCK_NO,
                   gtk.RESPONSE_NO)
        dia = gtk.Dialog("Credits Low", None, 0, buttons)
        self.controller = controller

        vbox = gtk.VBox()

        title = gtk.Label()
        markup = "<span size='large' weight='bold'>You Are Running out of Credits</span>"
        title.set_markup(markup)
        title.set_justify(gtk.JUSTIFY_CENTER)
        vbox.pack_start(title, True, False, 0)

        #A text entry telling the user what to do:
        balance = Bank.get().get_expected_balance()
        balanceGB = Format.convert_to_gb(balance)
        label = gtk.Label()
        text = "You only have %s (%s) credits remaining.  You must set up a relay to gain more credits.  \
This will allow other users to send traffic via your computer.\n\nWould you like to set up a relay now?" % (
            balance, balanceGB)
        label.set_markup(text)
        label.set_line_wrap(True)
        vbox.pack_start(label, True, True, 5)

        #if we should always check:
        self.askAboutRelay = gtk.CheckButton(
            "Always ask about help setting up relay")
        vbox.pack_start(self.askAboutRelay, True, True, 10)
        #initialize the checkbox:
        self.askAboutRelay.set_active(CoreSettings.get().askAboutRelay)

        vbox = GTKUtils.add_padding(vbox, 5)
        dia.vbox.pack_start(vbox, True, True, 0)
        dia.connect("response", self.on_response)
        self.dia = dia
        #start the dialog
        dia.show_all()
예제 #7
0
 def make_pretty(self):
     """Note, pretty is set here!"""
     self.pretty = Format.convert_to_gb(self.value)
     return self.pretty
예제 #8
0
 def make_pretty(self):
   """Note, pretty is set here!"""
   self.pretty = Format.convert_to_gb(self.value)
   return self.pretty