Exemplo n.º 1
0
    def on_button_hash_clicked(self, widget):
        log.debug('on_button_hash_clicked')
        dialog = self.builder.get_object('dialog_infohash')
        entry = self.builder.get_object('entry_hash')
        textview = self.builder.get_object('text_trackers')

        dialog.set_default_response(Gtk.ResponseType.OK)
        dialog.set_transient_for(self.dialog)
        entry.grab_focus()

        text = get_clipboard_text()
        if is_infohash(text):
            entry.set_text(text)

        dialog.show_all()
        response = dialog.run()
        infohash = decode_bytes(entry.get_text()).strip()
        if response == Gtk.ResponseType.OK and is_infohash(infohash):
            # Create a list of trackers from the textview buffer
            tview_buf = textview.get_buffer()
            trackers_text = decode_bytes(
                tview_buf.get_text(*tview_buf.get_bounds(),
                                   include_hidden_chars=False))
            log.debug('Create torrent tracker lines: %s', trackers_text)
            trackers = list(trackers_tiers_from_text(trackers_text).keys())

            # Convert the information to a magnet uri, this is just easier to
            # handle this way.
            log.debug('trackers: %s', trackers)
            magnet = create_magnet_uri(infohash, infohash, trackers)
            log.debug('magnet uri: %s', magnet)
            self.add_from_magnets([magnet])

        entry.set_text('')
        textview.get_buffer().set_text('')
        dialog.hide()
Exemplo n.º 2
0
 def test_is_infohash(self):
     self.assertTrue(is_infohash('2dc5d0e71a66fe69649a640d39cb00a259704973'))
Exemplo n.º 3
0
 def test_is_infohash(self):
     self.assertTrue(is_infohash('2dc5d0e71a66fe69649a640d39cb00a259704973'))