Thread: AutoCacheDownloader Not Working

Results 1 to 8 of 8
  1. #1 AutoCacheDownloader Not Working 
    Registered Member
    Join Date
    May 2013
    Posts
    53
    Thanks given
    2
    Thanks received
    0
    Rep Power
    11
    Can someone help me get autocachedownloading working correctly?

    Error is:
    Code:
    java.io.FileNotFoundException: C:\Users\Tyler\IllusionzCache\IllusionzCache.zip?dl=0 (The filename, directory name, or volume label syntax is incorrect)
            at java.io.FileOutputStream.open0(Native Method)
            at java.io.FileOutputStream.open(Unknown Source)
            at java.io.FileOutputStream.<init>(Unknown Source)
            at java.io.FileOutputStream.<init>(Unknown Source)
            at CacheDownloader.downloadFile(CacheDownloader.java:83)
            at CacheDownloader.downloadCache(CacheDownloader.java:63)
            at client.startUp(client.java:7443)
            at RSApplet.run(RSApplet.java:101)
            at client.run(client.java:4844)
            at java.lang.Thread.run(Unknown Source)
    java.io.FileNotFoundException: C:\Users\Tyler\IllusionzCache\IllusionzCache.zip?dl=0 (The filename, directory name, or volume label syntax is incorrect)
            at java.io.FileInputStream.open0(Native Method)
            at java.io.FileInputStream.open(Unknown Source)
            at java.io.FileInputStream.<init>(Unknown Source)
            at java.io.FileInputStream.<init>(Unknown Source)
            at CacheDownloader.unZip(CacheDownloader.java:125)
            at CacheDownloader.downloadCache(CacheDownloader.java:64)
            at client.startUp(client.java:7443)
            at RSApplet.run(RSApplet.java:101)
            at client.run(client.java:4844)
            at java.lang.Thread.run(Unknown Source)
    This is my cache downloader file
    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 {
    
       &nbsp;private client client;
       &nbsp;private final int BUFFER = 1024;
       &nbsp;private final int VERSION = 1;
       &nbsp;private String cacheLink = "https://www.dropbox.com/s/uszpw6uavs71wnc/IllusionzCache.zip?dl=0"; 
       &nbsp;private String fileToExtract = getCacheDir() + getArchivedName();
    
       &nbsp;public CacheDownloader(client client) {
            this.client = client;
        }
    
       &nbsp;private void drawLoadingText(String text) {
            client.drawLoadingText(35, text);
        }
    
       &nbsp;private void drawLoadingText(int amount, String text) {
            client.drawLoadingText(amount, text);
        }
    
       &nbsp;private String getCacheDir() {
            return signlink.findcachedir();
        }
    
       &nbsp;private String getCacheLink() {
            return cacheLink;
        }
    
       &nbsp;private int getCacheVersion() {
            return VERSION;
        }
    
       &nbsp;public CacheDownloader downloadCache() {
            try {
            File location = new File(getCacheDir());
            File version = new File(getCacheDir() + "/cacheVersion" + getCacheVersion() + ".dat");
            if(!location.exists()) {
                downloadFile(getCacheLink(), getArchivedName());
                unZip();
                BufferedWriter versionFile = new BufferedWriter(new FileWriter(getCacheDir() + "/cacheVersion" + getCacheVersion() + ".dat"));
                versionFile.close();
                deleteZIP(getArchivedName());
            } else {
                if(!version.exists()) {
                    downloadFile(getCacheLink(), getArchivedName());
                    unZip();
                    BufferedWriter versionFile = new BufferedWriter(new FileWriter(getCacheDir() + "/cacheVersion" + getCacheVersion() + ".dat"));
                    versionFile.close();
                    deleteZIP(getArchivedName());
                } else {
                    return null;
                }
            }
            } catch(Exception e) {
            }
            return null;
        }
        
       &nbsp;private void downloadFile(String adress, String localFileName) {
            OutputStream out = null;
            URLConnection conn;
            InputStream in = null;
            try {
                URL url = new URL(adress);
               &nbsp;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) {
                   &nbsp;out.write(data, 0, numRead);
                    numWritten += numRead;
                int percentage = (int)(((double)numWritten / (double)length) * 100D);
                    drawLoadingText(percentage, "Downloading Cache " + percentage + "%");
                }
                drawLoadingText("Updates are now complete. Please wait.");
            } catch (Exception exception) {
                exception.printStackTrace();
            } finally {
                try {
                    if (in != null) {
                        in.close();
                    }
                    if (out != null) {
                       &nbsp;out.close();
                    }
                } catch (IOException ioe) {
                }
            }
        }
    
       &nbsp;private String getArchivedName() {
            int lastSlashIndex = getCacheLink().lastIndexOf('/');
            if (lastSlashIndex >= 0 
                && lastSlashIndex < getCacheLink().length() -1) { 
                return getCacheLink().substring(lastSlashIndex + 1);
            } else {
            }
            return "";
        }
    
       &nbsp;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());
                    }
                }
                zin.close();
            } catch(Exception e) {
                e.printStackTrace();
            }
        }
    
       &nbsp;private void unzip(ZipInputStream zin, String s) 
            throws IOException {
            FileOutputStream out = new FileOutputStream(s);
            byte [] b = new byte[BUFFER];
            int len = 0;
            while ((len = zin.read(b)) != -1) {
               &nbsp;out.write(b,0,len);
            }
           &nbsp;out.close();
        }
        
       &nbsp;private void deleteZIP(String fileName){
        // A File object to represent the filename
        File f = new File(getCacheDir() + fileName);
    
        // Make sure the file or directory exists and isn't write protected
        if (!f.exists())
          throw new IllegalArgumentException(
              "Delete: no such file or directory: " + fileName);
    
        if (!f.canWrite())
          throw new IllegalArgumentException("Delete: write protected: "
              + fileName);
    
        // If it is a directory, make sure it is empty
        if (f.isDirectory()) {
          String[] files = f.list();
          if (files.length > 0)
            throw new IllegalArgumentException(
                "Delete: directory not empty: " + fileName);
        }
    
        // Attempt to delete it
        boolean success = f.delete();
    
        if (!success)
          throw new IllegalArgumentException("Delete: deletion failed");
    
        }
    }
    This is my signlink
    Code:
    package sign;
    
    import java.applet.Applet;
    import java.io.*;
    import java.net.*;
    
    public final class signlink
        implements Runnable
    {
    
        public static void startpriv(InetAddress inetaddress)
        {
            threadliveid = (int)(Math.random() * 99999999D);
            if(active)
            {
                try
                {
                    Thread.sleep(500L);
                }
                catch(Exception _ex) { }
                active = false;
            }
            socketreq = 0;
            threadreq = null;
            dnsreq = null;
            savereq = null;
            urlreq = null;
            socketip = inetaddress;
            Thread thread = new Thread(new signlink());
            thread.setDaemon(true);
            thread.start();
            while(!active)
                try
                {
                    Thread.sleep(50L);
                }
                catch(Exception _ex) { }
        }
    
        public void run() {
            active = true;
            String s = findcachedir();
            uid = getuid(s);
            try {
                cache_dat = new RandomAccessFile(s + "main_file_cache.dat", "rw");
                for(int j = 0; j < 5; j++) {
                    cache_idx[j] = new RandomAccessFile(s + "main_file_cache.idx" + j, "rw");
                }
            } catch(Exception exception) {
                exception.printStackTrace();
            }
            for(int i = threadliveid; threadliveid == i;)
            {
                if(socketreq != 0)
                {
                    try
                    {
                        socket = new Socket(socketip, socketreq);
                    }
                    catch(Exception _ex)
                    {
                        socket = null;
                    }
                    socketreq = 0;
                } else
                if(threadreq != null)
                {
                    Thread thread = new Thread(threadreq);
                    thread.setDaemon(true);
                    thread.start();
                    thread.setPriority(threadreqpri);
                    threadreq = null;
                } else
                if(dnsreq != null)
                {
                    try
                    {
                        dns = InetAddress.getByName(dnsreq).getHostName();
                    }
                    catch(Exception _ex)
                    {
                        dns = "unknown";
                    }
                    dnsreq = null;
                } else
                if(savereq != null)
                {
                    if(savebuf != null)
                        try
                        {
                            FileOutputStream fileoutputstream = new FileOutputStream(s + savereq);
                            fileoutputstream.write(savebuf, 0, savelen);
                            fileoutputstream.close();
                        }
                        catch(Exception _ex) { }
                    if(waveplay)
                    {
                        String wave = s + savereq;
                        waveplay = false;
                    }
                    if(midiplay)
                    {
                        midi = s + savereq;
                        midiplay = false;
                    }
                    savereq = null;
                } else
                if(urlreq != null)
                {
                    try
                    {
                        System.out.println("urlstream");
                        urlstream = new DataInputStream((new URL(mainapp.getCodeBase(), urlreq)).openStream());
                    }
                    catch(Exception _ex)
                    {
                        urlstream = null;
                    }
                    urlreq = null;
                }
                try
                {
                    Thread.sleep(50L);
                }
                catch(Exception _ex) { }
            }
    
        }
    
        public static String findcachedir()
        {
            boolean exists = (new File(System.getProperty("user.home") + "/IllusionzCache/")).exists();
            if (exists) {
                return System.getProperty("user.home") + "/IllusionzCache/";
            } else {
                File f = new File(System.getProperty("user.home") + "/IllusionzCache");
                f.mkdir();
                return System.getProperty("user.home") + "/IllusionzCache";
            }
        }
    
        public static String findcachedirORIG()
        {
            String as[] = {
                "c:/windows/", "c:/winnt/", "d:/windows/", "d:/winnt/", "e:/windows/", "e:/winnt/", "f:/windows/", "f:/winnt/", "c:/", "~/",
                "/tmp/", "", "c:/rscache", "/rscache"
            };
            if(storeid < 32 || storeid > 34)
                storeid = 32;
            String s = ".file_store_" + storeid;
            for(int i = 0; i < as.length; i++)
                try
                {
                    String s1 = as[i];
                    if(s1.length() > 0)
                    {
                        File file = new File(s1);
                        if(!file.exists())
                            continue;
                    }
                    File file1 = new File(s1 + s);
                    if(file1.exists() || file1.mkdir())
                        return s1 + s + "/";
                }
                catch(Exception _ex) { }
         
            return null;
     
        }
    
        public static int getuid(String s)
        {
            try
            {
                File file = new File(s + "uid.dat");
                if(!file.exists() || file.length() < 4L)
                {
                    DataOutputStream dataoutputstream = new DataOutputStream(new FileOutputStream(s + "uid.dat"));
                    dataoutputstream.writeInt((int)(Math.random() * 99999999D));
                    dataoutputstream.close();
                }
            }
            catch(Exception _ex) { }
            try
            {
                DataInputStream datainputstream = new DataInputStream(new FileInputStream(s + "uid.dat"));
                int i = datainputstream.readInt();
                datainputstream.close();
                return i + 1;
            }
            catch(Exception _ex)
            {
                return 0;
            }
        }
    
        public static synchronized Socket opensocket(int i)
            throws IOException
        {
            for(socketreq = i; socketreq != 0;)
                try
                {
                    Thread.sleep(50L);
                }
                catch(Exception _ex) { }
    
            if(socket == null)
                throw new IOException("could not open socket");
            else
                return socket;
        }
    
        public static synchronized DataInputStream openurl(String s)
            throws IOException
        {
            for(urlreq = s; urlreq != null;)
                try
                {
                    Thread.sleep(50L);
                }
                catch(Exception _ex) { }
    
            if(urlstream == null)
                throw new IOException("could not open: " + s);
            else
                return urlstream;
        }
    
        public static synchronized void dnslookup(String s)
        {
            dns = s;
            dnsreq = s;
        }
    
        public static synchronized void startthread(Runnable runnable, int i)
        {
            threadreqpri = i;
            threadreq = runnable;
        }
    
        public static synchronized boolean wavesave(byte abyte0[], int i)
        {
            if(i > 0x1e8480)
                return false;
            if(savereq != null)
            {
                return false;
            } else
            {
                wavepos = (wavepos + 1) % 5;
                savelen = i;
                savebuf = abyte0;
                waveplay = true;
                savereq = "sound" + wavepos + ".wav";
                return true;
            }
        }
    
        public static synchronized boolean wavereplay()
        {
            if(savereq != null)
            {
                return false;
            } else
            {
                savebuf = null;
                waveplay = true;
                savereq = "sound" + wavepos + ".wav";
                return true;
            }
        }
    
        public static synchronized void midisave(byte abyte0[], int i)
        {
            if(i > 0x1e8480)
                return;
            if(savereq != null)
            {
            } else
            {
                midipos = (midipos + 1) % 5;
                savelen = i;
                savebuf = abyte0;
                midiplay = true;
                savereq = "jingle" + midipos + ".mid";
            }
        }
    
        public static void reporterror(String s)
        {
            System.out.println("Error: " + s);
        }
    
        public signlink()
        {
        }
    
        public static final int clientversion = 317;
        public static int uid;
        public static int storeid = 32;
        public static RandomAccessFile cache_dat = null;
        public static final RandomAccessFile[] cache_idx = new RandomAccessFile[5];
        public static boolean sunjava;
        public static Applet mainapp = null;
        public static boolean active;
        public static int threadliveid;
        public static InetAddress socketip;
        public static int socketreq;
        public static Socket socket = null;
        public static int threadreqpri = 1;
        public static Runnable threadreq = null;
        public static String dnsreq = null;
        public static String dns = null;
        public static String urlreq = null;
        public static DataInputStream urlstream = null;
        public static int savelen;
        public static String savereq = null;
        public static byte[] savebuf = null;
        public static boolean midiplay;
        public static int midipos;
        public static String midi = null;
        public static int midivol;
        public static int midifade;
        public static boolean waveplay;
        public static int wavepos;
        public static int wavevol;
        public static boolean reporterror = true;
        public static String errorname = "";
    
    }
    Reply With Quote  
     

  2. #2  
    Community Veteran

    Songoty's Avatar
    Join Date
    Dec 2007
    Posts
    2,740
    Thanks given
    211
    Thanks received
    1,034
    Rep Power
    2455
    Code:
    C:\Users\Tyler\Camelot 474\Camelot%20474.zip?dl=0
    That file is not there for it to unzip. Your naming is wrong it looks like you're appending part of the download url to your file name string.
    Reply With Quote  
     

  3. #3  
    Registered Member
    Join Date
    May 2013
    Posts
    53
    Thanks given
    2
    Thanks received
    0
    Rep Power
    11
    How exactly do I fix it then? It downloads everything except for any folders in the zipped folder.
    Reply With Quote  
     

  4. #4  
    Registered Member
    Join Date
    May 2013
    Posts
    53
    Thanks given
    2
    Thanks received
    0
    Rep Power
    11
    Bump
    Reply With Quote  
     

  5. #5  
    Registered Member
    Join Date
    May 2013
    Posts
    53
    Thanks given
    2
    Thanks received
    0
    Rep Power
    11
    Bump
    Reply With Quote  
     

  6. #6  
    Registered Member

    Join Date
    Oct 2011
    Posts
    2,084
    Thanks given
    0
    Thanks received
    1,043
    Rep Power
    3608
    Reply With Quote  
     

  7. #7  
    Registered Member
    Join Date
    May 2013
    Posts
    53
    Thanks given
    2
    Thanks received
    0
    Rep Power
    11
    That didn't work can someone please help me!
    Reply With Quote  
     

  8. #8  
    Registered Member Fer's Avatar
    Join Date
    Nov 2015
    Posts
    33
    Thanks given
    53
    Thanks received
    11
    Rep Power
    27
    It is trying to locate a file ending with .zip?dl=0. You need to strip the last part or get another place to host that offers a direct link.
    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. Client not working for You? READ!
    By Edge in forum Tutorials
    Replies: 59
    Last Post: 02-06-2020, 09:27 AM
  2. [PI]AutoCacheDownloader not working properly
    By Patrickff3 in forum Help
    Replies: 4
    Last Post: 03-29-2012, 02:07 PM
  3. NPCs not working.
    By FateJiki in forum Configuration
    Replies: 2
    Last Post: 02-17-2008, 02:40 PM
  4. Kevins floor editor not working.. 2 errors :(
    By newservermaker in forum RS2 Client
    Replies: 0
    Last Post: 01-03-2008, 06:47 AM
  5. Replies: 17
    Last Post: 11-30-2007, 04:15 AM
Posting Permissions
  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •