mirror of
				https://github.com/yacy/yacy_search_server.git
				synced 2025-10-30 23:46:12 -04:00 
			
		
		
		
	
		
			
				
	
	
		
			136 lines
		
	
	
		
			4.8 KiB
		
	
	
	
		
			Java
		
	
	
	
	
	
			
		
		
	
	
			136 lines
		
	
	
		
			4.8 KiB
		
	
	
	
		
			Java
		
	
	
	
	
	
| // Banner.java
 | |
| // -----------------------
 | |
| // part of YaCy
 | |
| // (C) by Michael Peter Christen; mc@yacy.net
 | |
| // first published on http://www.anomic.de
 | |
| // Frankfurt, Germany, 2004
 | |
| //
 | |
| // This File is contributed by Marc Nause
 | |
| //
 | |
| // $LastChangedDate$
 | |
| // $LastChangedRevision$
 | |
| // $LastChangedBy$
 | |
| //
 | |
| // This program is free software; you can redistribute it and/or modify
 | |
| // it under the terms of the GNU General Public License as published by
 | |
| // the Free Software Foundation; either version 2 of the License, or
 | |
| // (at your option) any later version.
 | |
| //
 | |
| // This program is distributed in the hope that it will be useful,
 | |
| // but WITHOUT ANY WARRANTY; without even the implied warranty of
 | |
| // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 | |
| // GNU General Public License for more details.
 | |
| //
 | |
| // You should have received a copy of the GNU General Public License
 | |
| // along with this program; if not, write to the Free Software
 | |
| // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
 | |
| 
 | |
| package net.yacy.htroot;
 | |
| 
 | |
| import java.awt.image.BufferedImage;
 | |
| import java.io.File;
 | |
| import java.io.IOException;
 | |
| 
 | |
| import javax.imageio.ImageIO;
 | |
| 
 | |
| import net.yacy.cora.protocol.RequestHeader;
 | |
| import net.yacy.peers.Seed;
 | |
| import net.yacy.peers.graphics.BannerData;
 | |
| import net.yacy.search.Switchboard;
 | |
| import net.yacy.search.SwitchboardConstants;
 | |
| import net.yacy.server.serverObjects;
 | |
| import net.yacy.server.serverSwitch;
 | |
| import net.yacy.visualization.RasterPlotter;
 | |
| 
 | |
| /** Draw a banner with information about the peer. */
 | |
| public class Banner {
 | |
| 
 | |
|     public static RasterPlotter respond(
 | |
|         @SuppressWarnings("unused") final RequestHeader header,
 | |
|         final serverObjects post,
 | |
|         final serverSwitch env) throws IOException {
 | |
|         final Switchboard sb = (Switchboard) env;
 | |
|         final String pathToImage = sb.appPath + "/htroot/env/grafics/yacy.png";
 | |
|         int width = 468;
 | |
|         int height = 60;
 | |
|         String bgcolor = "e7effc";
 | |
|         String textcolor = "000000";
 | |
|         String bordercolor = "5090d0";
 | |
| 
 | |
|         if (post != null) {
 | |
|             bgcolor = post.get("bgcolor", bgcolor);
 | |
|             textcolor = post.get("textcolor", textcolor);
 | |
|             bordercolor = post.get("bordercolor", bordercolor);
 | |
|             width = post.getInt("width", width);
 | |
|             height = post.getInt("height", height);
 | |
|         }
 | |
| 
 | |
|         String name = "";
 | |
|         long links = 0;
 | |
|         long words = 0;
 | |
|         int myppm = 0;
 | |
|         double myqph = 0;
 | |
|         String type = "";
 | |
|         final String network =
 | |
|                 env.getConfig(
 | |
|                         SwitchboardConstants.NETWORK_NAME,
 | |
|                         "unspecified").toUpperCase();
 | |
| 
 | |
|         // the '+ 1': the own peer is not included in sizeConnected()
 | |
|         final int peers = sb.peers.sizeConnected() + 1;
 | |
|         long nlinks = sb.peers.countActiveURL();
 | |
|         long nwords = sb.peers.countActiveRWI();
 | |
|         final double nqpm = sb.peers.countActiveQPM();
 | |
|         long nppm = sb.peers.countActivePPM();
 | |
|         double nqph = 0;
 | |
| 
 | |
|         final Seed seed = sb.peers.mySeed();
 | |
|         if (seed != null) {
 | |
|             name = seed.get(Seed.NAME, "-").toUpperCase();
 | |
|             links = sb.index.fulltext().collectionSize();
 | |
|             words = seed.getWordCount();
 | |
|             myppm = Switchboard.currentPPM();
 | |
|             myqph = 60d * sb.averageQPM();
 | |
| 
 | |
|             if (sb.peers.mySeed().isVirgin()) {
 | |
|                 type = "VIRGIN";
 | |
|                 nqph = Math.round(6000d * nqpm) / 100d;
 | |
|             } else if (sb.peers.mySeed().isJunior()) {
 | |
|                 type = "JUNIOR";
 | |
|                 nqph = Math.round(6000d * nqpm) / 100d;
 | |
|             } else if (sb.peers.mySeed().isSenior()) {
 | |
|                 type = "SENIOR";
 | |
|                 nlinks = nlinks + links;
 | |
|                 nwords = nwords + words;
 | |
|                 nqph = Math.round(6000d * nqpm + 100d * myqph) / 100d;
 | |
|                 nppm = nppm + myppm;
 | |
|             } else if (sb.peers.mySeed().isPrincipal()) {
 | |
|                 type = "PRINCIPAL";
 | |
|                 nlinks = nlinks + links;
 | |
|                 nwords = nwords + words;
 | |
|                 nqph = Math.round(6000d * nqpm + 100d * myqph) / 100d;
 | |
|                 nppm = nppm + myppm;
 | |
|             }
 | |
|         }
 | |
| 
 | |
|         final BannerData data =
 | |
|                 new BannerData(
 | |
|                         width, height, bgcolor, textcolor, bordercolor, name, links,
 | |
|                         words, type, myppm, network, peers, nlinks, nwords,
 | |
|                         nqph, nppm);
 | |
| 
 | |
|         if (!net.yacy.peers.graphics.Banner.logoIsLoaded()) {
 | |
|             // do not write a cache to disc; keep in RAM
 | |
|             ImageIO.setUseCache(false);
 | |
|             final BufferedImage logo = ImageIO.read(new File(pathToImage));
 | |
|             return net.yacy.peers.graphics.Banner.getBannerPicture(
 | |
|                 data,
 | |
|                 1000,
 | |
|                 logo);
 | |
|         }
 | |
| 
 | |
|         return net.yacy.peers.graphics.Banner.getBannerPicture(data, 1000);
 | |
|     }
 | |
| 
 | |
| }
 |