Exemplo n.º 1
0
	std::string make_magnet_uri(torrent_info const& info)
	{
		std::stringstream ret;
		if (!info.is_valid()) return ret.str();

		std::string name = info.name();

		ret << "magnet:?xt=urn:btih:" << base32encode(
			std::string((char*)info.info_hash().begin(), 20));
		if (!name.empty())
			ret << "&dn=" << escape_string(name.c_str(), name.length());
		std::vector<announce_entry> const& tr = info.trackers();
		if (!tr.empty())
		{
			ret << "&tr=" << escape_string(tr[0].url.c_str()
				, tr[0].url.length());
		}
		return ret.str();
	}