CStdString CURI::GetWithoutUserDetails() const { CStdString strURL; if (m_strProtocol.Equals("stack")) { CFileItemList items; CStdString strURL2; strURL2 = Get(); DIRECTORY::CStackDirectory dir; dir.GetDirectory(strURL2,items); vector<CStdString> newItems; for (int i=0;i<items.Size();++i) { CURI url(items[i]->m_strPath); items[i]->m_strPath = url.GetWithoutUserDetails(); newItems.push_back(items[i]->m_strPath); } dir.ConstructStackPath(newItems,strURL); return strURL; } unsigned int sizeneed = m_strProtocol.length() + m_strDomain.length() + m_strHostName.length() + m_strFileName.length() + m_strOptions.length() + m_strProtocolOptions.length() + 10; strURL.reserve(sizeneed); if (m_strProtocol == "") return m_strFileName; strURL = m_strProtocol; strURL += "://"; if (m_strHostName != "") { if (m_strProtocol.Equals("rar") || m_strProtocol.Equals("zip")) strURL += CURI(m_strHostName).GetWithoutUserDetails(); else strURL += m_strHostName; if ( HasPort() ) { CStdString strPort; strPort.Format("%i", m_iPort); strURL += ":"; strURL += strPort; } strURL += "/"; } strURL += m_strFileName; if( m_strOptions.length() > 0 ) strURL += m_strOptions; if( m_strProtocolOptions.length() > 0 ) strURL += "|"+m_strProtocolOptions; return strURL; }
void CURL::GetURLWithoutUserDetails(CStdString& strURL) const { if (m_strProtocol.Equals("stack")) { CFileItemList items; CStdString strURL2; GetURL(strURL2); DIRECTORY::CStackDirectory dir; dir.GetDirectory(strURL2,items); vector<CStdString> newItems; for (int i=0;i<items.Size();++i) { CURL url(items[i]->m_strPath); url.GetURLWithoutUserDetails(items[i]->m_strPath); newItems.push_back(items[i]->m_strPath); } dir.ConstructStackPath(newItems,strURL); return; } unsigned int sizeneed = m_strProtocol.length() + m_strDomain.length() + m_strHostName.length() + m_strFileName.length() + m_strOptions.length() + 10; if( strURL.capacity() < sizeneed ) strURL.reserve(sizeneed); if (m_strProtocol == "") { strURL = m_strFileName; return ; } strURL = m_strProtocol; strURL += "://"; if (m_strHostName != "") { if (m_strProtocol.Equals("rar") || m_strProtocol.Equals("zip")) { CURL url2(m_strHostName); CStdString strHost; url2.GetURLWithoutUserDetails(strHost); strURL += strHost; } else strURL += m_strHostName; if ( HasPort() ) { CStdString strPort; strPort.Format("%i", m_iPort); strURL += ":"; strURL += strPort; } strURL += "/"; } strURL += m_strFileName; if( m_strOptions.length() > 0 ) strURL += m_strOptions; }