Index: shareaza/DlgURLCopy.cpp =================================================================== --- shareaza/DlgURLCopy.cpp (revision 5558) +++ shareaza/DlgURLCopy.cpp (working copy) @@ -121,6 +121,26 @@ strURN += m_pFile->m_oED2K.toUrn(); } + if ( m_pFile->m_oMD5.isValid()) + { + if ( strURN.GetLength() ) + { + strURN += _T("&xt="); + } + + strURN += m_pFile->m_oMD5.toUrn(); + } + + if ( m_pFile->m_nSize != 0 && m_pFile->m_nSize != SIZE_UNKNOWN ) + { + CString strSize; + + strSize.Format( _T("&xl=%I64i"), + m_pFile->m_nSize ); + + m_sMagnet += strSize; + } + m_sMagnet = _T("magnet:?"); if ( strURN.GetLength() ) @@ -142,16 +162,6 @@ } } - if ( m_pFile->m_nSize != 0 && m_pFile->m_nSize != SIZE_UNKNOWN ) - { - CString strSize; - - strSize.Format( _T("&xl=%I64i"), - m_pFile->m_nSize ); - - m_sMagnet += strSize; - } - if ( m_wndIncludeSelf.GetCheck() && strURN.GetLength() ) { CString strURL; Index: shareaza/DlgURLExport.cpp =================================================================== --- shareaza/DlgURLExport.cpp (revision 5558) +++ shareaza/DlgURLExport.cpp (working copy) @@ -90,7 +90,7 @@ if ( m_sFormat.IsEmpty() ) m_sFormat = _T("[Name]
"); + _T("&xt=urn:ed2khash:[ED2K]&xt=urn:md5:[MD5]&xl=[ByteSize]&dn=[NameURI]\">[Name]
"); UpdateData( FALSE ); @@ -133,9 +133,9 @@ LPCTSTR pszPresets[] = { - _T("magnet:?xt=urn:bitprint:[SHA1].[TIGER]&xt=urn:ed2khash:[ED2K]&dn=[NameURI]&xl=[ByteSize]"), + _T("magnet:?xt=urn:bitprint:[SHA1].[TIGER]&xt=urn:ed2khash:[ED2K]&xt=urn:md5:[MD5]&xl=[ByteSize]&dn=[NameURI]"), _T("ed2k://|file|[NameURI]|[ByteSize]|[ED2K]|/"), - _T("[Name]
"), + _T("[Name]
"), _T("[Name]"), };