-
-
Save pyvelkov/f00868ae30f5e4d60799f1b530d247ea to your computer and use it in GitHub Desktop.
lab6
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
diff --git a/.idea/libraries/client_combined_3_141_59.xml b/.idea/libraries/client_combined_3_141_59.xml | |
index 0e10ff3..0ef81bc 100644 | |
--- a/.idea/libraries/client_combined_3_141_59.xml | |
+++ b/.idea/libraries/client_combined_3_141_59.xml | |
@@ -2,6 +2,7 @@ | |
<library name="client-combined-3.141.59"> | |
<CLASSES> | |
<root url="jar://$USER_HOME$/Desktop/coding/selenium/client-combined-3.141.59.jar!/" /> | |
+ <root url="jar://$PROJECT_DIR$/../../../../JSONSimple/json-simple-1.1.1.jar!/" /> | |
</CLASSES> | |
<JAVADOC /> | |
<SOURCES> | |
diff --git a/src/DeadLinkage/CheckLink.java b/src/DeadLinkage/CheckLink.java | |
index 624cdd9..c23e0c0 100644 | |
--- a/src/DeadLinkage/CheckLink.java | |
+++ b/src/DeadLinkage/CheckLink.java | |
@@ -1,8 +1,14 @@ | |
package DeadLinkage; | |
+import org.openqa.selenium.By; | |
+import org.openqa.selenium.WebDriver; | |
+import org.openqa.selenium.WebElement; | |
+ | |
import java.io.IOException; | |
import java.net.HttpURLConnection; | |
import java.net.URL; | |
+import java.util.ArrayList; | |
+import java.util.List; | |
import static DeadLinkage.AnsiColors.*; | |
@@ -76,4 +82,55 @@ public class CheckLink { | |
} | |
} catch (IOException e) { } | |
} | |
+ | |
+ public static boolean JsonLinkLogic(ArrayList<String> jsonLinks, ArrayList<String> ignoreLinks, String argPrintFlag, WebDriver driver){ | |
+ int postCounter = 1; | |
+ boolean exitCode = true; | |
+ for (String jsonLink : jsonLinks){ | |
+ System.out.println("Post: " + postCounter); | |
+ driver.get(jsonLink); | |
+ List<WebElement> links = driver.findElements(By.tagName("a")); | |
+ for (WebElement link : links) { | |
+ try { | |
+ WebElement elem = link; | |
+ | |
+ String url = elem.getAttribute("href"); | |
+ for (String ignoreLink : ignoreLinks) { | |
+ if (url.startsWith(ignoreLink)) { | |
+ url = url.replace(ignoreLink, ""); | |
+ } | |
+ } | |
+ checkLink(url, argPrintFlag); | |
+ exitCode = true; | |
+ } catch (Exception ExceptionExit) { | |
+ exitCode = false; | |
+ } | |
+ } | |
+ postCounter++; | |
+ } | |
+ return exitCode; | |
+ } | |
+ | |
+ public static boolean checkLinkLogic(ArrayList<String> ignoreLinks, String argPrintFlag, WebDriver driver){ | |
+ List<WebElement> links = driver.findElements(By.tagName("a")); | |
+ boolean exitCode = true; | |
+ for (int i = 0; i < links.size(); i++) { | |
+ try { | |
+ WebElement elem = links.get(i); | |
+ | |
+ String url = elem.getAttribute("href"); | |
+ | |
+ for (String ignoreLink : ignoreLinks) { | |
+ if (url.startsWith(ignoreLink)) { | |
+ url = url.replace(ignoreLink, ""); | |
+ } | |
+ } | |
+ checkLink(url, argPrintFlag); | |
+ exitCode = true; | |
+ } catch (Exception ExceptionExit) { | |
+ exitCode = false; | |
+ } | |
+ } | |
+ return exitCode; | |
+ } | |
} | |
diff --git a/src/DeadLinkage/DeadLinkTest.java b/src/DeadLinkage/DeadLinkTest.java | |
index c3d5af7..166faaa 100644 | |
--- a/src/DeadLinkage/DeadLinkTest.java | |
+++ b/src/DeadLinkage/DeadLinkTest.java | |
@@ -1,18 +1,18 @@ | |
package DeadLinkage; | |
-import org.openqa.selenium.By; | |
import org.openqa.selenium.WebDriver; | |
-import org.openqa.selenium.WebElement; | |
import org.openqa.selenium.chrome.ChromeDriver; | |
import org.openqa.selenium.chrome.ChromeOptions; | |
import java.io.IOException; | |
import java.util.ArrayList; | |
-import java.util.List; | |
-import static DeadLinkage.CheckLink.checkLink; | |
+import static DeadLinkage.CheckLink.JsonLinkLogic; | |
+import static DeadLinkage.CheckLink.checkLinkLogic; | |
import static DeadLinkage.HelpMessage.helpMessage; | |
-import static DeadLinkage.LinkArgumentParser.*; | |
+import static DeadLinkage.JsonReader.JsonCheckLink; | |
+import static DeadLinkage.LinkArgumentParser.fileArgParser; | |
+import static DeadLinkage.LinkArgumentParser.urlArgParser; | |
import static DeadLinkage.LoadIgnoreFile.loadFileIgnore; | |
import static DeadLinkage.Version.versionMessage; | |
@@ -21,7 +21,8 @@ import static DeadLinkage.Version.versionMessage; | |
public class DeadLinkTest { | |
public static void main(String[] args) { | |
- String argPrintFlag = ""; | |
+ String argPrintFlag; | |
+ boolean exitCode = true; | |
int ignoreFlag = 0; | |
ArrayList<String> ignoreLinks = new ArrayList<>(); | |
@@ -59,44 +60,30 @@ public class DeadLinkTest { | |
//check files | |
else if (args[0].equals("-f") || args[0].equals("--f") || args[0].equals("/f")) { | |
argPrintFlag = fileArgParser(args, driver, ignoreFlag); | |
+ exitCode = checkLinkLogic(ignoreLinks, argPrintFlag, driver); | |
} | |
//check URLS | |
else if (args[0].equals("-u") || args[0].equals("--u") || args[0].equals("/u")) { | |
argPrintFlag = urlArgParser(args, driver, ignoreFlag); | |
- } else { | |
+ exitCode = checkLinkLogic(ignoreLinks, argPrintFlag, driver); | |
+ } | |
+ else if(args[0].equals("-telescope") ||args[0].equals("--telescope") || args[0].equals("/telescope")){ | |
+ argPrintFlag = "--all"; | |
+ exitCode = JsonLinkLogic(JsonCheckLink(), ignoreLinks, argPrintFlag, driver); | |
+ } | |
+ else { | |
driver.quit(); | |
helpMessage(); | |
} | |
+ if (exitCode) System.exit(0); | |
+ else System.exit(1); | |
- driver.manage().window().maximize(); | |
- | |
- List<WebElement> links = driver.findElements(By.tagName("a")); | |
- | |
- boolean exitCode = true; | |
- for (int i = 0; i < links.size(); i++) { | |
- try { | |
- WebElement elem = links.get(i); | |
- | |
- String url = elem.getAttribute("href"); | |
+ //quit driver in case it was missed somewhere | |
+ driver.quit(); | |
+ } | |
- for (String ignoreLink : ignoreLinks) { | |
- if (url.startsWith(ignoreLink)) { | |
- url = url.replace(ignoreLink, ""); | |
- } | |
- } | |
- checkLink(url, argPrintFlag); | |
- exitCode = true; | |
- } catch (Exception ExceptionExit) { | |
- exitCode = false; | |
- } | |
- } | |
- //quit driver in case it was missed somewhere | |
- driver.quit(); | |
- if (exitCode) System.exit(0); | |
- else System.exit(1); | |
- } | |
} | |
diff --git a/src/DeadLinkage/JsonReader.java b/src/DeadLinkage/JsonReader.java | |
new file mode 100644 | |
index 0000000..ee808ac | |
--- /dev/null | |
+++ b/src/DeadLinkage/JsonReader.java | |
@@ -0,0 +1,55 @@ | |
+package DeadLinkage; | |
+ | |
+import org.json.simple.JSONArray; | |
+import org.json.simple.JSONObject; | |
+import org.json.simple.parser.JSONParser; | |
+ | |
+import java.net.HttpURLConnection; | |
+import java.net.URL; | |
+import java.util.ArrayList; | |
+import java.util.Scanner; | |
+ | |
+public class JsonReader { | |
+ public static ArrayList<String> JsonCheckLink() { | |
+ ArrayList<String> result = new ArrayList<>(); | |
+ String inline = ""; | |
+ String baseURL = "http://localhost:3000/posts/"; | |
+ try { | |
+ URL url = new URL(baseURL); | |
+ HttpURLConnection conn = (HttpURLConnection)url.openConnection(); | |
+ conn.setRequestMethod("GET"); | |
+ conn.connect(); | |
+ | |
+ int responsecode = conn.getResponseCode(); | |
+ | |
+ if(responsecode != 200) | |
+ throw new RuntimeException("HttpResponseCode: " +responsecode); | |
+ else | |
+ { | |
+ Scanner sc = new Scanner(url.openStream()); | |
+ while(sc.hasNext()) | |
+ { | |
+ inline+=sc.nextLine(); | |
+ } | |
+ sc.close(); | |
+ } | |
+ | |
+ JSONParser parser = new JSONParser(); | |
+ JSONArray jarr = (JSONArray) parser.parse(inline); | |
+ | |
+ //{"id":"403b73803f","url":"/posts/403b73803f"} | |
+ for(int i = 0; i<jarr.size();i++){ | |
+ JSONObject jsonObj = (JSONObject)jarr.get(i); | |
+ String ID = (String)jsonObj.get("id"); | |
+ result.add(baseURL + ID); | |
+ } | |
+ | |
+ //disconnect connection | |
+ conn.disconnect(); | |
+ } catch (Exception e) { | |
+ e.printStackTrace(); | |
+ } | |
+ | |
+ return result; | |
+ } | |
+} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment