'Loads torrent into rTorrent (with various enhancements)
@param new_torrent: can be a url, a path to a local file, or the raw data
of a torrent file
@type new_torrent: str
@param start: start torrent when loaded
@type start: bool
@param verbose: print error messages to rTorrent log
@type verbose: bool
@param verify_load: verify that torrent was added to rTorrent successfully
@type verify_load: bool
@return: Depends on verify_load:
- if verify_load is True, (and the torrent was
loaded successfully), it\'ll return a L{Torrent} instance
- if verify_load is False, it\'ll return None
@rtype: L{Torrent} instance or None
@raise AssertionError: If the torrent wasn\'t successfully added to rTorrent
- Check L{TorrentParser} for the AssertionError\'s
it raises
@note: Because this function includes url verification (if a url was input)
as well as verification as to whether the torrent was successfully added,
this function doesn\'t execute instantaneously. If that\'s what you\'re
looking for, use load_torrent_simple() instead.'

def load_torrent(self, new_torrent, start=False, verbose=False, verify_load=True):

    p = self._get_conn()
    tp = TorrentParser(new_torrent)
    new_torrent = xmlrpclib.Binary(tp._raw_torrent)
    info_hash = tp.info_hash
    func_name = self._get_load_function('raw', start, verbose)
    getattr(p, func_name)(new_torrent)
    if verify_load:
        new_torrent = None
        for i in range(MAX_RETRIES):
            time.sleep(2)
            new_torrent = self.find_torrent(info_hash)
            if new_torrent:
                break
        assert new_torrent, 'Adding    torrent    was    unsuccessful    after    {0}    seconds.    (load_torrent)'.format((MAX_RETRIES * 2))
        return new_torrent
    return self.find_torrent(info_hash)
