⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 servhtml.cpp

📁 这是和p2p相关的一份源码
💻 CPP
📖 第 1 页 / 共 5 页
字号:
				for(i=0; i<ChanMgr::MAX_HITLISTS; i++)				{					ChanHitList *chl = &chanMgr->hitlists[i];					if (chl->isUsed())						if (chl->info.match(*info))							hits[numHits++] = chl;				}				if (!numHits)				{					html.startTag("tr");						if (showFind)							html.startTag("td","No channels found");						else							html.startTag("td","Searching...");					html.end();				}else				{					qsort(hits,numHits,sizeof(ChanHitList*),(COMPARE_FUNC)compareFuncs[sort*2 + (dir?0:1)]);					for(i=0; i<numHits; i++)					{						ChanHitList *chl = hits[i];						html.startTableRow(i);	#if 0							html.startTag("td");								html.startSingleTagEnd("input type=\"checkbox\" name=\"c%d\" value=\"1\"",chl->index);							html.end();	#endif							addChannelInfo(html,chl->info,false,true,true,true,true);							String genre = chl->info.genre;							genre.convertTo(String::T_HTML);							html.startTagEnd("td",genre.cstr()); 							html.startTagEnd("td","%d",chl->info.bitrate); 							html.startTagEnd("td",ChanInfo::getTypeStr(chl->info.contentType)); 							html.startTagEnd("td","%d / %d",chl->numListeners(),chl->numHits()); 						html.end();	// tr					}				}#if 0			html.end();	// form#endif		html.end();	// table	//}else{	//	html.startTagEnd("h3","No channels found.");	//}	addFooter(html);}// -----------------------------------void Servent::addWinampChansPage(HTML &html, const char *wildcard, const char *type, bool stop){	int maxHits=ChanMgr::MAX_HITLISTS;	//bool stop = (wildcard==NULL) || (type==NULL);	if (!strlen(type))		type = "name";	if ((chanMgr->numHitLists() < maxHits) && (!stop))		html.setRefresh(servMgr->refreshHTML);	addBasicHeader(html);	ChanHitList *hits[ChanMgr::MAX_HITLISTS];	int numHits=0;	int i;	ChanInfo searchInfo;	searchInfo.init();	if (strcmp(type,"name")==0)		searchInfo.name.set(wildcard);	else if (strcmp(type,"genre")==0)		searchInfo.genre.set(wildcard);	else if (strcmp(type,"bitrate")==0)		searchInfo.bitrate = atoi(wildcard);	for(i=0; i<ChanMgr::MAX_HITLISTS; i++)	{		ChanHitList *chl = &chanMgr->hitlists[i];		if (chl->isUsed() && chl->isAvailable())			if (chl->info.match(searchInfo))				hits[numHits++] = chl;	}	bool maxShown=false;	if (numHits >= maxHits)	{		numHits = maxHits;		maxShown = true; 	}	if (servMgr->downloadURL[0])	{		html.startTag("font color=\"#FF0000\"");			html.startTag("div align=\"center\"");				html.startTagEnd("b","! Attention !");			html.end();		html.end();		html.startTag("b");			html.startTag("div align=\"center\"");				html.addLink("/admin?cmd=upgrade","Click here to update your client",true);			html.end();		html.end();	}	if (!servMgr->rootMsg.isEmpty())	{		String pcMsg = servMgr->rootMsg;		pcMsg.convertTo(String::T_HTML);		html.startTag("div align=\"center\"");			html.startTagEnd("b",pcMsg.cstr());		html.end();	}//	html.startTagEnd("b","-%s -%s",wildcard,type);	html.startTag("form method=\"get\" action=\"/admin?\"");		html.startSingleTagEnd("input name=\"page\" type=\"hidden\" value=\"winamp-chans\"");							if (!stop)		{			html.startTagEnd("input name=\"stop\" type=\"submit\" value=\"Stop Search\"");								html.startSingleTagEnd("input name=\"wildcard\" type=\"hidden\" value=\"%s\"",wildcard);								html.startSingleTagEnd("input name=\"type\" type=\"hidden\" value=\"%s\"",type);							}else		{			char optStr[256];			html.startTag("select name=\"type\"");				sprintf(optStr,"option value=\"name\" %s",(strcmp(type,"name")==0)?"selected":"");				html.startTagEnd(optStr,"Name");				sprintf(optStr,"option value=\"genre\" %s",(strcmp(type,"genre")==0)?"selected":"");				html.startTagEnd(optStr,"Genre");				sprintf(optStr,"option value=\"bitrate\" %s",(strcmp(type,"bitrate")==0)?"selected":"");				html.startTagEnd(optStr,"BitRate");			html.end();			html.startSingleTagEnd("input name=\"wildcard\" type=\"text\" value=\"%s\"",wildcard);								html.startTagEnd("input name=\"search\" type=\"submit\" value=\"Search\"");							}		//html.startTagEnd("input name=\"search\" type=\"submit\" value=\"Stop Search\"");						html.end();#if 1		html.startTag("table border=\"0\" width=\"100%%\" align=\"center\"");				html.startTag("tr bgcolor=\"#cccccc\" align=\"center\"");					html.startTagEnd("td width=\"5%%\"","<b><font size=\"-1\">Play</font></b>"); 					//html.startTagEnd("td width=\"20%%\"","<b><font size=\"-1\">Type</font></b>"); 					html.startTagEnd("td width=\"95%%\"","<b><font size=\"-1\">PeerCast Channel</font></b>"); 				html.end();							if (numHits)				{					qsort(hits,numHits,sizeof(ChanHitList*),(COMPARE_FUNC)compareNamesUp);					for(i=0; i<numHits; i++)					{						ChanHitList *chl = hits[i];						html.startTableRow(i);							char idStr[64];							chl->info.id.toStr(idStr);							String playURL;							sprintf(playURL.data,"/pls/%s.m3u",idStr);							String genre = chl->info.genre;							genre.convertTo(String::T_HTML);							String name = chl->info.name;							name.convertTo(String::T_HTML);							html.startTagEnd("td","<font face=\"Webdings\" size=\"+2\"><a href=\"%s\">U</a></font>",playURL.cstr());							//html.startTagEnd("td","<font size=\"-1\">%s %d kb/s</font>",chl->info.getTypeStr(),chl->info.bitrate);							html.startTagEnd("td","<font size=\"-1\"><b>%s</b><br>%s %d kb/s - (%s)</font>",name.cstr(),ChanInfo::getTypeStr(chl->info.contentType),chl->info.bitrate,genre.cstr());							//addChannelInfoShort(html,chl->info);							//String genre = chl->info.genre;							//genre.convertTo(String::T_HTML);							//html.startTagEnd("td",genre.cstr()); 							//html.startTagEnd("td","%d",chl->info.bitrate); 							//html.startTagEnd("td",chl->info.getTypeStr()); 						html.end();	// tr					}				}		html.end();	// table	if (stop)		html.startTagEnd("b","<font size=\"-1\">Displayed %d out of %d channels.</b>",numHits,chanMgr->numHitLists());	else if (!stop)		html.startTagEnd("b","Searching...");#endif	addFooter(html);}// -----------------------------------void Servent::addMyChannelsPage(HTML &html){	html.setRefresh(servMgr->refreshHTML);	addHeader(html,3);	Channel *clist[ChanMgr::MAX_CHANNELS];	ChanInfo info;	int num = chanMgr->findChannels(info,clist,ChanMgr::MAX_CHANNELS);	//if (num)	if (1)	{				//int totListen=0;		html.startTag("table border=\"0\" width=\"95%%\" align=\"center\"");#if 0			html.startTag("form method=\"get\" action=\"/admin\"");				html.startTag("tr");					html.startTagEnd("input name=\"play\" type=\"submit\" value=\"Play selected\"");										html.startTagEnd("input name=\"bump\" type=\"submit\" value=\"Bump selected\"");										html.startTagEnd("input name=\"stop\" type=\"submit\" value=\"Stop selected\"");										html.startTagEnd("input name=\"cmd\" type=\"hidden\" value=\"chan\"");									html.end();#endif				html.startTag("tr bgcolor=\"#cccccc\" align=\"center\"");#if 0					html.startTagEnd("td width=\"1%%\"",""); #endif					html.startTagEnd("td","<b>Channel</b>"); 					html.startTagEnd("td","<b>Genre</b>"); 					html.startTagEnd("td width=\"1%%\"","<b>Bitrate (kb/s)</b>"); 					html.startTagEnd("td width=\"1%%\"","<b>Stream</b>"); 					html.startTagEnd("td width=\"2%%\"","<b>Relays</b>"); 					html.startTagEnd("td width=\"2%%\"","<b>Listeners</b>"); 					html.startTagEnd("td width=\"1%%\"","<b>Status</b>"); 					html.startTagEnd("td width=\"1%%\"","<b>Keep</b>"); 				html.end();				for(int i=0; i<num; i++)				{					Channel *c = clist[i];					char idStr[64];					c->getIDStr(idStr);					html.startTableRow(i);#if 0					// checkbox					html.startTag("td");						html.startSingleTagEnd("input type=\"checkbox\" name=\"c%d\" value=\"1\"",c->index);					html.end();#endif					String genre = c->info.genre;					genre.convertTo(String::T_HTML);					addChannelInfo(html,c->info,true,true,true,true,true);					html.startTagEnd("td",genre.cstr()); 					// bitrate					if (c->getBitrate())						html.startTagEnd("td","%d",c->getBitrate()); 					else						html.startTagEnd("td","-"); 					// stream/type					html.startTag("td align=\"center\""); 					{						String path;						c->getStreamPath(path.data);						html.addLink(path.cstr(),ChanInfo::getTypeStr(c->info.contentType));											}					html.end();					// relays					html.startTagEnd("td","%d",c->numRelays); 					// listeners					html.startTagEnd("td","%d",c->numListeners); 					// status					html.startTagEnd("td",c->getStatusStr()); 					// keep					html.startTagEnd("td",c->stayConnected?"Yes":"No"); 					html.end();					//totListen += c->listeners;				}#if 0			html.end();	// form#endif		html.end();	// table		}else{		html.startTagEnd("h3","No channels available.");	}	addFooter(html);}// -----------------------------------void Servent::addBroadcastPage(HTML &html){	addHeader(html,8);	Channel *clist[ChanMgr::MAX_CHANNELS];	ChanInfo info;	int num = chanMgr->findChannels(info,clist,ChanMgr::MAX_CHANNELS);	//if (num)	if (1)	{				//int totListen=0;		html.startTag("table border=\"0\" align=\"center\"");			html.startTag("form method=\"get\" action=\"/admin\"");				html.startSingleTagEnd("input name=\"cmd\" type=\"hidden\" value=\"fetch\"");									html.startTag("tr bgcolor=\"#cccccc\" align=\"center\"");					html.startTagEnd("td colspan=\"2\" ","<b>External Source</b>"); 				html.end();				int row=0;				html.startTableRow(row++);					html.startTagEnd("td","URL (Required)"); 					html.startTag("td");						html.startSingleTagEnd("input name=\"url\" size=\"40\" type=\"text\" value=\"%s\"","");					html.end();				html.end();				html.startTableRow(row++);					html.startTagEnd("td","Name"); 					html.startTag("td");						html.startSingleTagEnd("input name=\"name\" size=\"40\" type=\"text\" value=\"%s\"","");					html.end();				html.end();				html.startTableRow(row++);					html.startTagEnd("td","Genre"); 					html.startTag("td");						html.startSingleTagEnd("input name=\"genre\" size=\"40\" type=\"text\" value=\"%s\"","");					html.end();				html.end();				html.startTableRow(row++);					html.startTagEnd("td","Contact"); 					html.startTag("td");						html.startSingleTagEnd("input name=\"contact\" size=\"40\" type=\"text\" value=\"%s\"","");					html.end();				html.end();				html.startTableRow(row++);					html.startTag("td colspan=\"2\" align=\"center\"");						html.startSingleTagEnd("input name=\"stream\" type=\"submit\" value=\"Create Relay\"");										html.end();				html.end();			html.end();		html.end();		html.startTagEnd("br"); 		html.startTag("table border=\"0\" width=\"95%%\" align=\"center\"");				html.startTag("tr bgcolor=\"#cccccc\" align=\"center\"");					html.startTagEnd("td","<b>Channel</b>"); 					html.startTagEnd("td","<b>Source</b>"); 					html.startTagEnd("td","<b>Bitrate (kb/s)</b>"); 					html.startTagEnd("td","<b>Type</b>"); 				html.end();				for(int i=0; i<num; i++)				{					Channel *c = clist[i];					if (c->isBroadcasting())					{						unsigned int uptime = c->info.lastPlay?(sys->getTime()-c->info.lastPlay):0;						String uptimeStr;						uptimeStr.setFromStopwatch(uptime);						char idStr[64];						c->getIDStr(idStr);						html.startTableRow(i);						String name = c->info.name;						name.convertTo(String::T_HTML);						html.startTagEnd("td","%s",name.cstr()); 						addChannelSourceTag(html,c);												if (c->getBitrate())							html.startTagEnd("td","%d",c->getBitrate()); 						else							html.startTagEnd("td","-"); 						html.startTagEnd("td",ChanInfo::getTypeStr(c->info.contentType)); 						html.end();						//totListen += c->listeners;					}				}		html.end();	// table		}	addFooter(html);}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -