mirror of
https://github.com/sirjonasxx/G-Earth.git
synced 2024-11-27 02:40:51 +01:00
remade Cacher.java
This commit is contained in:
parent
9a49f74c9a
commit
9bde74d19d
BIN
src/json-simple-1.1.1.jar
Normal file
BIN
src/json-simple-1.1.1.jar
Normal file
Binary file not shown.
@ -69,7 +69,7 @@ public abstract class Extension {
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (getArgument(args, PORT_FLAG) == null) {
|
if (getArgument(args, PORT_FLAG) == null) {
|
||||||
System.err.println("Don't forget to include G-Earth's port as program parameters (-p {port})");
|
System.err.println("Don't forget to include G-Earth's port in your program parameters (-p {port})");
|
||||||
isCorrupted = true;
|
isCorrupted = true;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -1,183 +1,71 @@
|
|||||||
package main.misc;
|
package main.misc;
|
||||||
|
|
||||||
import java.io.*;
|
import org.json.simple.JSONObject;
|
||||||
|
import org.json.simple.parser.JSONParser;
|
||||||
|
import org.json.simple.parser.ParseException;
|
||||||
|
|
||||||
|
import java.io.File;
|
||||||
|
import java.io.FileWriter;
|
||||||
|
import java.io.IOException;
|
||||||
import java.nio.file.Files;
|
import java.nio.file.Files;
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
import java.util.Map;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Created by Jonas on 05/04/18.
|
* Created by Jonas on 28/09/18.
|
||||||
*/
|
*/
|
||||||
public class Cacher {
|
public class Cacher {
|
||||||
|
|
||||||
|
private static final String CACHEFILENAME = "jsoncache.json";
|
||||||
|
|
||||||
private static String getCacheDir() {
|
private static String getCacheDir() {
|
||||||
return System.getProperty("user.home") + File.separator + ".G-Earth" + File.separator;
|
return System.getProperty("user.home") + File.separator + ".G-Earth" + File.separator;
|
||||||
}
|
}
|
||||||
|
|
||||||
public static boolean exists(String key) {
|
private static boolean cacheFileExists() {
|
||||||
File f = new File(getCacheDir(), "cache.txt");
|
File f = new File(getCacheDir(), CACHEFILENAME);
|
||||||
if (f.exists()) {
|
return (f.exists() && !f.isDirectory());
|
||||||
|
}
|
||||||
|
|
||||||
|
private static JSONObject getCacheContents() {
|
||||||
|
if (cacheFileExists()) {
|
||||||
try {
|
try {
|
||||||
List<String> lines = Files.readAllLines(f.toPath());
|
File f = new File(getCacheDir(), CACHEFILENAME);
|
||||||
|
String contents = String.join("\n", Files.readAllLines(f.toPath()));
|
||||||
|
|
||||||
for (String line : lines) {
|
JSONParser parser = new JSONParser();
|
||||||
if (line.startsWith(key+":")) {
|
return (JSONObject) parser.parse(contents);
|
||||||
return true;
|
} catch (IOException | ParseException e) {
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
} catch (IOException e) {
|
|
||||||
e.printStackTrace();
|
e.printStackTrace();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return false;
|
return new JSONObject();
|
||||||
}
|
}
|
||||||
|
private static void updateCache(JSONObject contents) {
|
||||||
|
try (FileWriter file = new FileWriter(new File(getCacheDir(), CACHEFILENAME))) {
|
||||||
|
|
||||||
public static String get(String key) {
|
file.write(contents.toJSONString());
|
||||||
File f = new File(getCacheDir(), "cache.txt");
|
file.flush();
|
||||||
if (f.exists()) {
|
|
||||||
try {
|
|
||||||
List<String> lines = Files.readAllLines(f.toPath());
|
|
||||||
|
|
||||||
for (String line : lines) {
|
} catch (IOException e) {
|
||||||
if (line.startsWith(key+":")) {
|
e.printStackTrace();
|
||||||
return line.split(":")[1];
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
} catch (IOException e) {
|
|
||||||
e.printStackTrace();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return "";
|
|
||||||
}
|
|
||||||
|
|
||||||
public static void remove(String key) {
|
|
||||||
File targetFile = new File(getCacheDir() + File.separator + "cache.txt");
|
|
||||||
File parent = targetFile.getParentFile();
|
|
||||||
if (!parent.exists() && !parent.mkdirs()) {
|
|
||||||
throw new IllegalStateException("Couldn't create dir: " + parent);
|
|
||||||
}
|
|
||||||
if (!targetFile.exists()) {
|
|
||||||
try {
|
|
||||||
targetFile.createNewFile();
|
|
||||||
} catch (IOException e) {
|
|
||||||
e.printStackTrace();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
try
|
|
||||||
{
|
|
||||||
ArrayList<String> lines = new ArrayList<String>();
|
|
||||||
File f1 = new File(getCacheDir() + File.separator + "cache.txt");
|
|
||||||
FileReader fr = new FileReader(f1);
|
|
||||||
BufferedReader br = new BufferedReader(fr);
|
|
||||||
String line = null;
|
|
||||||
while ((line = br.readLine()) != null)
|
|
||||||
{
|
|
||||||
if (!line.startsWith(key + ":"))
|
|
||||||
lines.add(line);
|
|
||||||
|
|
||||||
}
|
|
||||||
fr.close();
|
|
||||||
br.close();
|
|
||||||
|
|
||||||
FileWriter fw = new FileWriter(f1);
|
|
||||||
BufferedWriter out = new BufferedWriter(fw);
|
|
||||||
|
|
||||||
for (int i = 0; i < lines.size(); i++) {
|
|
||||||
out.write(lines.get(i));
|
|
||||||
if (i != lines.size() - 1) out.write("\n");
|
|
||||||
}
|
|
||||||
out.flush();
|
|
||||||
out.close();
|
|
||||||
}
|
|
||||||
catch (Exception ex)
|
|
||||||
{
|
|
||||||
ex.printStackTrace();
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public static void add(String key, String value) {
|
public static void put(String key, Object val) {
|
||||||
File targetFile = new File(getCacheDir() + File.separator + "cache.txt");
|
JSONObject object = getCacheContents();
|
||||||
File parent = targetFile.getParentFile();
|
if (object.containsKey(key)) object.remove(key);
|
||||||
if (!parent.exists() && !parent.mkdirs()) {
|
|
||||||
throw new IllegalStateException("Couldn't create dir: " + parent);
|
|
||||||
}
|
|
||||||
if (!targetFile.exists()) {
|
|
||||||
try {
|
|
||||||
targetFile.createNewFile();
|
|
||||||
} catch (IOException e) {
|
|
||||||
e.printStackTrace();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
// File f = new File(getCacheDir(), "cache.txt");
|
object.put(key, val);
|
||||||
// if (!f.exists()) {
|
updateCache(object);
|
||||||
// try {
|
|
||||||
// PrintWriter writer = new PrintWriter(f.getPath(), "UTF-8");
|
|
||||||
// writer.write("");
|
|
||||||
// writer.close();
|
|
||||||
// } catch (FileNotFoundException | UnsupportedEncodingException e) {
|
|
||||||
// e.printStackTrace();
|
|
||||||
// }
|
|
||||||
// }
|
|
||||||
|
|
||||||
try
|
|
||||||
{
|
|
||||||
ArrayList<String> lines = new ArrayList<String>();
|
|
||||||
File f1 = new File(getCacheDir() + File.separator + "cache.txt");
|
|
||||||
FileReader fr = new FileReader(f1);
|
|
||||||
BufferedReader br = new BufferedReader(fr);
|
|
||||||
String line = null;
|
|
||||||
boolean containmmm = false;
|
|
||||||
while ((line = br.readLine()) != null)
|
|
||||||
{
|
|
||||||
if (line.startsWith(key+":"))
|
|
||||||
containmmm = true;
|
|
||||||
lines.add(line);
|
|
||||||
|
|
||||||
}
|
|
||||||
fr.close();
|
|
||||||
br.close();
|
|
||||||
|
|
||||||
FileWriter fw = new FileWriter(f1);
|
|
||||||
BufferedWriter out = new BufferedWriter(fw);
|
|
||||||
|
|
||||||
if (!containmmm) {
|
|
||||||
out.write(key+":"+value);
|
|
||||||
}
|
|
||||||
|
|
||||||
for (int i = 0; i < lines.size(); i++) {
|
|
||||||
out.write("\n"+ lines.get(i));
|
|
||||||
}
|
|
||||||
|
|
||||||
out.flush();
|
|
||||||
out.close();
|
|
||||||
}
|
|
||||||
catch (Exception ex)
|
|
||||||
{
|
|
||||||
ex.printStackTrace();
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
public static Object get(String key) {
|
||||||
|
JSONObject object = getCacheContents();
|
||||||
|
|
||||||
public static void update(String key, String value) {
|
return object.get(key);
|
||||||
remove(key);
|
|
||||||
add(key, value);
|
|
||||||
}
|
}
|
||||||
|
public static void clear() {
|
||||||
|
updateCache(new JSONObject());
|
||||||
public static void main(String[] args) {
|
|
||||||
// System.out.println(exists("hallo"));
|
|
||||||
// System.out.println(get("hallo"));
|
|
||||||
//
|
|
||||||
// add("hallo","doei");
|
|
||||||
//
|
|
||||||
// System.out.println(exists("hallo"));
|
|
||||||
// System.out.println(get("hallo"));
|
|
||||||
//
|
|
||||||
// remove("hallo");
|
|
||||||
// System.out.println(get("hallo"));
|
|
||||||
System.out.println(get("PRODUCTION-201804032203-770536283-pingHeader"));
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user