Thread: Help with my cachedownloader

Results 1 to 4 of 4
  1. #1 Help with my cachedownloader 
    Registered Member
    Join Date
    Jul 2012
    Posts
    7
    Thanks given
    0
    Thanks received
    0
    Rep Power
    0
    Im getting an error while downloading my cache. it downloads that. inside the .rar file is the actual cache.


    It works fine if i just replace that cache in C: with the actual cache. is there a way to fix this?

    cacheDownloader
    Code:
    import java.io.File;
    import java.io.IOException;
    import java.io.OutputStream;
    import java.io.FileWriter;
    import java.io.BufferedWriter;
    import java.io.BufferedOutputStream;
    import java.io.BufferedInputStream;
    import java.io.FileOutputStream;
    import java.io.FileInputStream;
    import java.io.InputStream;
    import java.net.URLConnection;
    import java.net.URL;
    import java.util.zip.ZipFile;
    import java.util.zip.ZipEntry;
    import java.util.zip.ZipInputStream;
    import java.util.Enumeration;
    
    import sign.signlink;
    
    public class CacheDownloader {
    
    	private client client;
    
    	private final int BUFFER = 1024;
    
    	/*
    	 * Only things you need to change
    	 *
    	 */
    	private final int VERSION = 1; // Version of cache
    	private String cacheLink = "https://dl.dropboxusercontent.com/u/54224321/Deathlypvpz%20V3.zip"; // Link to cache
    
    	private String fileToExtract = getCacheDir() + getArchivedName();
    
    	public CacheDownloader(client client) {
    		this.client = client;
    	}
    
    	private void drawLoadingText(String text) {
    		client.drawLoadingText(35, text);
    		System.out.println(text);
    	}
    
    
    	private void drawLoadingText(int amount, String text) {
    		client.drawLoadingText(amount, text);
    		System.out.println(text);
    	}
    
    	private String getCacheDir() {
    		return signlink.findcachedir();
    	}
    
    	private String getCacheLink() {
    		return cacheLink;
    	}
    
    	private int getCacheVersion() {
    		return VERSION;
    	}
    
    	public CacheDownloader downloadCache() {
    		try {
    		File location = new File(getCacheDir());
    		File version = new File(getCacheDir() + "/cacheVersion" + getCacheVersion() + ".dat");
    		
    		if(!location.exists()) {
    			//drawLoadingText("Downloading Cache Please wait...");
    			downloadFile(getCacheLink(), getArchivedName());
    
    			unZip();
    			System.out.println("UNZIP");
    
    			BufferedWriter versionFile = new BufferedWriter(new FileWriter(getCacheDir() + "/cacheVersion" + getCacheVersion() + ".dat"));
    			versionFile.close();
    		} else {
    			if(!version.exists()) {
    				//drawLoadingText("Downloading Cache Please wait...");
    				downloadFile(getCacheLink(), getArchivedName());
    
    				unZip();
    				System.out.println("UNZIP");
    
    				BufferedWriter versionFile = new BufferedWriter(new FileWriter(getCacheDir() + "/cacheVersion" + getCacheVersion() + ".dat"));
    				versionFile.close();
    
    			} else {
    				return null;
    			}
    		}
    		} catch(Exception e) {
    
    		}
    		return null;
    	}
    	
    	private void downloadFile(String adress, String localFileName) {
    		OutputStream out = null;
    		URLConnection conn;
    		InputStream in = null;
    		
    		try {
    
    			URL url = new URL(adress);
    			out = new BufferedOutputStream(
    				new FileOutputStream(getCacheDir() + "/" +localFileName)); 
    
    			conn = url.openConnection();
    			in = conn.getInputStream(); 
    		
    			byte[] data = new byte[BUFFER]; 
    	
    			int numRead;
    			long numWritten = 0;
    			int length = conn.getContentLength();
    
    	
    			while((numRead = in.read(data)) != -1) {
    				out.write(data, 0, numRead);
    				numWritten += numRead;
    
                			int percentage = (int)(((double)numWritten / (double)length) * 100D);
    				drawLoadingText(percentage, "Downloading Cache " + percentage + "%");
    
    			}
    
    			System.out.println(localFileName + "\t" + numWritten);
    			drawLoadingText("Finished downloading "+getArchivedName()+"!");
    
    		} catch (Exception exception) {
    			exception.printStackTrace();
    		} finally {
    			try {
    				if (in != null) {
    					in.close();
    				}
    				if (out != null) {
    					out.close();
    				}
    			} catch (IOException ioe) {
    			}
    		}
    
    	}
    
    	private String getArchivedName() {
    		int lastSlashIndex = getCacheLink().lastIndexOf('/');
    		if (lastSlashIndex >= 0 
    			&& lastSlashIndex < getCacheLink().length() -1) { 
    			return getCacheLink().substring(lastSlashIndex + 1);
    		} else {
    			System.err.println("error retreiving archivaed name.");
    		}
    		return "";
    	}
    
    
    
    
    	private void unZip() {
    
    		try {
        			InputStream in = 
    				new BufferedInputStream(new FileInputStream(fileToExtract));
    			ZipInputStream zin = new ZipInputStream(in);
    			ZipEntry e;
    
    			while((e=zin.getNextEntry()) != null) {
    
                   			if(e.isDirectory()) {
    					(new File(getCacheDir() + e.getName())).mkdir();
                   			} else {
    
    				if (e.getName().equals(fileToExtract)) {
    					unzip(zin, fileToExtract);
    					break;
    				}
           					unzip(zin, getCacheDir() + e.getName());
    				}
    				System.out.println("unzipping2 " + e.getName());
    			}
    			zin.close();
    
    		} catch(Exception e) {
    			e.printStackTrace();
    		}
    	}
    
    	private void unzip(ZipInputStream zin, String s) 
    		throws IOException {
    
    		FileOutputStream out = new FileOutputStream(s);
    		//System.out.println("unzipping " + s);
    		byte [] b = new byte[BUFFER];
    		int len = 0;
    
    		while ((len = zin.read(b)) != -1) {
    			out.write(b,0,len);
    		}
    		out.close();
    	}
    }
    Please help :\
    [Only registered and activated users can see links. ]
    Reply With Quote  
     

  2. #2  
    Registered Member
    Join Date
    Mar 2013
    Posts
    144
    Thanks given
    3
    Thanks received
    2
    Rep Power
    36
    Try using auto cache downloader tutorials. They will help you solve your Particular Issue.
    Reply With Quote  
     

  3. #3  
    Registered Member

    Join Date
    Mar 2013
    Age
    6
    Posts
    509
    Thanks given
    18
    Thanks received
    30
    Rep Power
    89
    i can help you, pm me your skype need to be quick though going out
    Reply With Quote  
     

  4. #4  
    Donator

    Join Date
    Oct 2013
    Posts
    351
    Thanks given
    207
    Thanks received
    59
    Rep Power
    38
    Your cache does not extract all files, I can help you in a few minutes.

    Wrong section btw.
    Reply With Quote  
     


Thread Information
Users Browsing this Thread

There are currently 1 users browsing this thread. (0 members and 1 guests)


User Tag List

Similar Threads

  1. Replies: 3
    Last Post: 06-28-2013, 12:44 AM
  2. Need help with my Compile
    By Kollll in forum Help
    Replies: 7
    Last Post: 08-05-2008, 08:30 AM
  3. Help with my phpmailer.
    By Kadir in forum Help
    Replies: 0
    Last Post: 06-26-2008, 09:39 PM
  4. Need Alot Of Help With My Rs2 Server
    By sceneboy in forum RS2 Server
    Replies: 0
    Last Post: 06-16-2008, 09:01 PM
  5. Need help with my LG... repping!
    By Cky Poons in forum Windows
    Replies: 2
    Last Post: 02-23-2008, 12:44 PM
Posting Permissions
  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •