From 320d1787aa6e0c7918ec1d3d0530e293adc96c06 Mon Sep 17 00:00:00 2001 From: akaessens <24660231+akaessens@users.noreply.github.com> Date: Mon, 31 Aug 2020 16:13:43 +0200 Subject: [PATCH] improve high-res image url scraping --- .../com/akdev/nofbeventscraper/FbEvent.java | 3 ++- .../com/akdev/nofbeventscraper/FbScraper.java | 18 +++++++++++------- .../akdev/nofbeventscraper/MainActivity.java | 2 +- app/src/main/res/layout/activity_main.xml | 3 ++- 4 files changed, 16 insertions(+), 10 deletions(-) diff --git a/app/src/main/java/com/akdev/nofbeventscraper/FbEvent.java b/app/src/main/java/com/akdev/nofbeventscraper/FbEvent.java index 29dd185..707afd5 100644 --- a/app/src/main/java/com/akdev/nofbeventscraper/FbEvent.java +++ b/app/src/main/java/com/akdev/nofbeventscraper/FbEvent.java @@ -52,7 +52,8 @@ public class FbEvent { */ static String dateTimeToString(Date date) { try { - SimpleDateFormat formatter = new SimpleDateFormat("E, dd MMM yyyy HH:mm z", Locale.getDefault()); + SimpleDateFormat formatter = new SimpleDateFormat("E, dd MMM yyyy HH:mm z", + Locale.getDefault()); return formatter.format(date); } catch (Exception e) { return ""; diff --git a/app/src/main/java/com/akdev/nofbeventscraper/FbScraper.java b/app/src/main/java/com/akdev/nofbeventscraper/FbScraper.java index 3daae67..e6446e8 100644 --- a/app/src/main/java/com/akdev/nofbeventscraper/FbScraper.java +++ b/app/src/main/java/com/akdev/nofbeventscraper/FbScraper.java @@ -35,7 +35,7 @@ public class FbScraper extends AsyncTask { /** * Constructor with WeakReference to the main activity, to update it's text fields. * - * @param main WeakReference of main activity to prevent context leak + * @param main WeakReference of main activity to prevent context leak * @param input_url Input url to scrape from */ FbScraper(WeakReference main, String input_url) { @@ -48,7 +48,7 @@ public class FbScraper extends AsyncTask { * * @param url input url * @return facebook event url String if one was found - * @throws URISyntaxException if event not found + * @throws URISyntaxException if event not found * @throws MalformedURLException */ protected String fixURI(String url) throws URISyntaxException, MalformedURLException { @@ -64,7 +64,7 @@ public class FbScraper extends AsyncTask { if (matcher.find()) { String url_prefix = "https://m."; - if (main != null){ + if (main != null) { SharedPreferences shared_prefs = PreferenceManager.getDefaultSharedPreferences(main.get()); url_prefix = shared_prefs.getString("url_preference", url_prefix); } @@ -74,7 +74,7 @@ public class FbScraper extends AsyncTask { if (matcher.group(2) != null) { ret += matcher.group(2); } - return ret; + return ret; } else { throw new URISyntaxException(url, "Does not contain event."); } @@ -84,6 +84,7 @@ public class FbScraper extends AsyncTask { /** * Strips the event location from the json string. * This can be a name only or a complete postal address. + * * @param location_json JSON formatted string * @return String representation of the location. */ @@ -164,8 +165,9 @@ public class FbScraper extends AsyncTask { /** * Read a single field from a JSONObject + * * @param reader JSONObject to read from - * @param field Which field to read + * @param field Which field to read * @return String of the value of the field or empty string */ private String readFromJson(JSONObject reader, String field) { @@ -180,6 +182,7 @@ public class FbScraper extends AsyncTask { /** * Started by scraper.execute(). * Gets the HTML doc from the input string and scrapes the event information from it. + * * @param voids * @return */ @@ -212,14 +215,14 @@ public class FbScraper extends AsyncTask { try { // possibly get higher res image from event header - image_url = document.getElementsByClass("scaledImageFitWidth") + image_url = document.select("img[class*=scaledImageFit]") .first().attr("src"); } catch (Exception e) { // ignore } - event = new FbEvent(url, name,start_date, end_date, description, location, image_url); + event = new FbEvent(url, name, start_date, end_date, description, location, image_url); } catch (URISyntaxException | MalformedURLException e) { @@ -247,6 +250,7 @@ public class FbScraper extends AsyncTask { /** * When scraping is finished, main activity will be updated. * If an error occurred, main activity is given an error string. + * * @param aVoid */ protected void onPostExecute(Void aVoid) { diff --git a/app/src/main/java/com/akdev/nofbeventscraper/MainActivity.java b/app/src/main/java/com/akdev/nofbeventscraper/MainActivity.java index 34fd0ef..c228f14 100644 --- a/app/src/main/java/com/akdev/nofbeventscraper/MainActivity.java +++ b/app/src/main/java/com/akdev/nofbeventscraper/MainActivity.java @@ -331,7 +331,7 @@ public class MainActivity extends AppCompatActivity { // Inflate the menu; this adds items to the action bar if it is present. getMenuInflater().inflate(R.menu.menu_main, menu); - if(menu instanceof MenuBuilder){ + if (menu instanceof MenuBuilder) { MenuBuilder m = (MenuBuilder) menu; //noinspection RestrictedApi m.setOptionalIconsVisible(true); diff --git a/app/src/main/res/layout/activity_main.xml b/app/src/main/res/layout/activity_main.xml index 6559b62..f7b82dc 100644 --- a/app/src/main/res/layout/activity_main.xml +++ b/app/src/main/res/layout/activity_main.xml @@ -60,7 +60,8 @@ app:layout_anchorGravity="bottom|end" app:icon="@drawable/ic_content_paste" android:text="@android:string/paste" - android:tooltipText="@string/tooltip_paste"/> + android:tooltipText="@string/tooltip_paste" + tools:ignore="UnusedAttribute" />