Ignore:
Timestamp:
Jan 15, 2013, 9:02:01 PM (12 years ago)
Author:
alloc
Message:

AEI2:

  • Added offline detection (should run without internet connection)
  • Update check (manual/on startup), not actually updating yet
Location:
AE/installer2/src/net/oni2/aeinstaller/backend
Files:
6 edited

Legend:

Unmodified
Added
Removed
  • AE/installer2/src/net/oni2/aeinstaller/backend/Settings.java

    r619 r621  
    6565
    6666        private boolean printNamesNotInMap = false;
     67
     68        private boolean offlineMode = false;
    6769
    6870        /**
     
    161163
    162164        /**
     165         * @return Is offline?
     166         */
     167        public boolean isOfflineMode() {
     168                return offlineMode;
     169        }
     170
     171        /**
     172         * @param offline
     173         *            Is offline?
     174         */
     175        public void setOfflineMode(boolean offline) {
     176                this.offlineMode = offline;
     177        }
     178
     179        /**
    163180         * @return Mod Depot cache filename
    164181         */
  • AE/installer2/src/net/oni2/aeinstaller/backend/depot/DepotConfig.java

    r604 r621  
    11package net.oni2.aeinstaller.backend.depot;
     2
     3import net.oni2.aeinstaller.backend.Settings;
    24
    35/**
     
    7678                return 8000;
    7779        }
     80
     81        /**
     82         * @return URL of Depot
     83         */
     84        public static String getDepotUrl() {
     85                return Settings.getInstance().get("depot_url", "http://mods.oni2.net/");
     86        }
     87
     88        /**
     89         * @return URL of Depot API
     90         */
     91        public static String getDepotApiUrl() {
     92                return Settings.getInstance().get("depot_api_url",
     93                                "http://mods.oni2.net/?q=api/");
     94        }
    7895}
  • AE/installer2/src/net/oni2/aeinstaller/backend/depot/DepotManager.java

    r605 r621  
    55import java.io.FileOutputStream;
    66import java.io.IOException;
     7import java.io.UnsupportedEncodingException;
     8import java.net.UnknownHostException;
    79import java.util.HashMap;
    810import java.util.HashSet;
     
    2123import net.oni2.aeinstaller.backend.network.DrupalJSONQuery;
    2224
     25import org.apache.http.HttpResponse;
     26import org.apache.http.client.methods.HttpGet;
     27import org.apache.http.client.methods.HttpRequestBase;
     28import org.apache.http.impl.client.DefaultHttpClient;
    2329import org.json.JSONArray;
    2430import org.json.JSONException;
     
    221227
    222228        /**
     229         * @return Can we connect to the Depot?
     230         */
     231        public boolean checkConnection() {
     232                HttpRequestBase httpQuery = null;
     233
     234                try {
     235                        DefaultHttpClient httpclient = new DefaultHttpClient();
     236                        httpQuery = new HttpGet(DepotConfig.getDepotUrl());
     237
     238                        HttpResponse response = httpclient.execute(httpQuery);
     239
     240                        int code = response.getStatusLine().getStatusCode();
     241
     242                        return (code >= 200) && (code <= 299);
     243                } catch (UnknownHostException e) {
     244                } catch (UnsupportedEncodingException e) {
     245                        e.printStackTrace();
     246                } catch (IOException e) {
     247                        e.printStackTrace();
     248                } finally {
     249                        if (httpQuery != null)
     250                                httpQuery.releaseConnection();
     251                }
     252                return false;
     253        }
     254
     255        /**
    223256         * @return All TaxVocabs
    224257         */
  • AE/installer2/src/net/oni2/aeinstaller/backend/mods/ModManager.java

    r608 r621  
    182182
    183183        /**
     184         * @return Mods which are already locally available
     185         */
     186        public TreeSet<Mod> getLocalAvailableMods() {
     187                TreeSet<Mod> res = new TreeSet<Mod>();
     188                for (Mod m : mods.values()) {
     189                        if (m.isLocalAvailable())
     190                                res.add(m);
     191                }
     192                return res;
     193        }
     194
     195        /**
     196         * @return Mods which can be updated
     197         */
     198        public TreeSet<Mod> getUpdatableMods() {
     199                TreeSet<Mod> res = new TreeSet<Mod>();
     200                for (Mod m : getLocalAvailableMods()) {
     201                        if (m.isNewerAvailable())
     202                                res.add(m);
     203                }
     204                return res;
     205        }
     206
     207        /**
    184208         * @return Collection of tools valid on this platform and not mandatory
    185209         */
     
    199223                for (Mod m : tools.values()) {
    200224                        if (m.isValidOnPlatform() && m.isMandatoryMod())
     225                                res.add(m);
     226                }
     227                return res;
     228        }
     229
     230        /**
     231         * @return Tools which are already locally available
     232         */
     233        public TreeSet<Mod> getLocalAvailableTools() {
     234                TreeSet<Mod> res = new TreeSet<Mod>();
     235                for (Mod m : tools.values()) {
     236                        if (m.isLocalAvailable())
     237                                res.add(m);
     238                }
     239                return res;
     240        }
     241
     242        /**
     243         * @return Tools which can be updated
     244         */
     245        public TreeSet<Mod> getUpdatableTools() {
     246                TreeSet<Mod> res = new TreeSet<Mod>();
     247                for (Mod m : getLocalAvailableTools()) {
     248                        if (m.isNewerAvailable())
    201249                                res.add(m);
    202250                }
  • AE/installer2/src/net/oni2/aeinstaller/backend/mods/download/ModDownload.java

    r605 r621  
    8080                        unpacker = new Unpacker(zipFile, targetFolder, this);
    8181                } catch (IOException e) {
    82                         // TODO Auto-generated catch block
    8382                        e.printStackTrace();
    8483                }
  • AE/installer2/src/net/oni2/aeinstaller/backend/network/DrupalJSONQuery.java

    r605 r621  
    99import java.util.List;
    1010
    11 import net.oni2.aeinstaller.backend.Settings;
     11import net.oni2.aeinstaller.backend.depot.DepotConfig;
    1212
    1313import org.apache.http.HttpEntity;
     
    2929 */
    3030public class DrupalJSONQuery {
    31 
    32         private static String getDepotUrl() {
    33                 return Settings.getInstance().get("depot_api_url",
    34                                 "http://mods.oni2.net/?q=api/");
    35         }
    3631
    3732        /**
     
    5651                        }
    5752                        HttpEntity data = new UrlEncodedFormEntity(nvps);
    58                         return executeQuery(getDepotUrl() + resource + "/" + action
     53                        return executeQuery(DepotConfig.getDepotApiUrl() + resource + "/" + action
    5954                                        + ".json", data);
    6055                } catch (UnsupportedEncodingException e) {
     
    8075                        String refName) throws Exception {
    8176                return executeQuery(
    82                                 getDepotUrl() + resource + "/" + Integer.toString(index) + "/"
     77                                DepotConfig.getDepotApiUrl() + resource + "/" + Integer.toString(index) + "/"
    8378                                                + refName + ".json", null);
    8479        }
     
    10095                        String parameters) throws Exception {
    10196                return executeQuery(
    102                                 getDepotUrl() + resource + "/" + Integer.toString(index)
     97                                DepotConfig.getDepotApiUrl() + resource + "/" + Integer.toString(index)
    10398                                                + ".json" + parameters, null);
    10499        }
     
    126121                if (pagesize >= 0)
    127122                        pagesizeN = "&pagesize=" + Integer.toString(pagesize);
    128                 return executeQuery(getDepotUrl() + resource + ".json" + pageN
     123                return executeQuery(DepotConfig.getDepotApiUrl() + resource + ".json" + pageN
    129124                                + pagesizeN, null);
    130125        }
Note: See TracChangeset for help on using the changeset viewer.