diff options
author | Size43 | 2015-05-20 12:06:06 +0200 |
---|---|---|
committer | Size43 | 2015-05-20 12:06:06 +0200 |
commit | 1341020b72b80e7e11c5dc4f4b4f9faea9ad0546 (patch) | |
tree | fc3589d03baa775e9c03f03ff4e17eb423c195f1 /app/src/main/java/org | |
parent | fix voor jos (diff) |
FeedLoaderAndSorter added
Diffstat (limited to 'app/src/main/java/org')
-rwxr-xr-x | app/src/main/java/org/rssin/neurons/FeedSorterStorage.java | 44 | ||||
-rwxr-xr-x | app/src/main/java/org/rssin/neurons/MultiNeuralNetwork.java | 4 | ||||
-rwxr-xr-x | app/src/main/java/org/rssin/neurons/NeuralNetwork.java | 4 | ||||
-rwxr-xr-x | app/src/main/java/org/rssin/neurons/TrainingCase.java | 5 | ||||
-rwxr-xr-x | app/src/main/java/org/rssin/rssin/FeedLoaderAndSorter.java | 64 | ||||
-rwxr-xr-x[-rw-r--r--] | app/src/main/java/org/rssin/rssin/Filter.java | 9 |
6 files changed, 82 insertions, 48 deletions
diff --git a/app/src/main/java/org/rssin/neurons/FeedSorterStorage.java b/app/src/main/java/org/rssin/neurons/FeedSorterStorage.java deleted file mode 100755 index 1479a3b..0000000 --- a/app/src/main/java/org/rssin/neurons/FeedSorterStorage.java +++ /dev/null @@ -1,44 +0,0 @@ -package org.rssin.neurons;
-
-import android.content.Context;
-
-import java.io.File;
-import java.io.FileNotFoundException;
-import java.io.IOException;
-import java.io.ObjectInputStream;
-import java.io.ObjectOutputStream;
-
-/**
- * Created by Jos on 20-5-2015.
- */
-public class FeedSorterStorage {
- private final String file = "ml.dat";
- public FeedSorterStorage()
- {}
-
- /**
- * Reads a FeedSorter from an internal file.
- * @param context The context
- * @return The loaded FeedSorter
- * @throws IOException
- * @throws ClassNotFoundException
- */
- public FeedSorter loadSorter(Context context) throws IOException, ClassNotFoundException {
- ObjectInputStream is = new ObjectInputStream(context.openFileInput(file));
- FeedSorter read = (FeedSorter)is.readObject();
- is.close();
- return read;
- }
-
- /**
- * Saves the FeedSorter to an internal file.
- * @param context The context
- * @param s The FeedSorter to save
- * @throws IOException
- */
- public void saveSorter(Context context, FeedSorter s) throws IOException {
- ObjectOutputStream os = new ObjectOutputStream(context.openFileOutput(file, Context.MODE_PRIVATE));
- os.writeObject(s);
- os.close();
- }
-}
diff --git a/app/src/main/java/org/rssin/neurons/MultiNeuralNetwork.java b/app/src/main/java/org/rssin/neurons/MultiNeuralNetwork.java index 09dfc21..a2f06eb 100755 --- a/app/src/main/java/org/rssin/neurons/MultiNeuralNetwork.java +++ b/app/src/main/java/org/rssin/neurons/MultiNeuralNetwork.java @@ -1,9 +1,11 @@ package org.rssin.neurons;
+import java.io.Serializable;
+
/**
* Created by Jos on 14-5-2015.
*/
-class MultiNeuralNetwork {
+class MultiNeuralNetwork implements Serializable{
private static final long serialVersionUID = 0;
private NeuralNetwork[] networks;
diff --git a/app/src/main/java/org/rssin/neurons/NeuralNetwork.java b/app/src/main/java/org/rssin/neurons/NeuralNetwork.java index 3766262..620d5bd 100755 --- a/app/src/main/java/org/rssin/neurons/NeuralNetwork.java +++ b/app/src/main/java/org/rssin/neurons/NeuralNetwork.java @@ -1,9 +1,11 @@ package org.rssin.neurons;
+import java.io.Serializable;
+
/**
* Created by Jos on 14-5-2015.
*/
-class NeuralNetwork {
+class NeuralNetwork implements Serializable{
private static final long serialVersionUID = 0;
private Neuron[] hiddenNodes;
private Neuron outputNode;
diff --git a/app/src/main/java/org/rssin/neurons/TrainingCase.java b/app/src/main/java/org/rssin/neurons/TrainingCase.java index e2680f8..77162be 100755 --- a/app/src/main/java/org/rssin/neurons/TrainingCase.java +++ b/app/src/main/java/org/rssin/neurons/TrainingCase.java @@ -1,9 +1,12 @@ package org.rssin.neurons;
+import java.io.Serializable;
+
/**
* Created by Jos on 20-5-2015.
*/
-class TrainingCase {
+class TrainingCase implements Serializable {
+ private static long serialVersionID;
private double[] inputs;
private Feedback feedback;
diff --git a/app/src/main/java/org/rssin/rssin/FeedLoaderAndSorter.java b/app/src/main/java/org/rssin/rssin/FeedLoaderAndSorter.java new file mode 100755 index 0000000..eda0526 --- /dev/null +++ b/app/src/main/java/org/rssin/rssin/FeedLoaderAndSorter.java @@ -0,0 +1,64 @@ +package org.rssin.rssin;
+
+import org.rssin.neurons.FeedSorter;
+import org.rssin.rss.FeedItem;
+import org.rssin.rss.FeedLoader;
+
+import java.util.ArrayList;
+import java.util.List;
+
+/**
+ * Created by Jos on 20-5-2015.
+ */
+public class FeedLoaderAndSorter {
+ private Filter filter;
+
+ public FeedLoaderAndSorter(Filter filter) {
+ this.filter = filter;
+ }
+
+ /**
+ * Loads the feed(s), filters it, sorts it, and returns the result.
+ * @return The filtered & sorted list of feedtems.
+ */
+ public List<FeedItem> getFilteredFeedItems()
+ {
+ List<FeedItem> resultingItems = new ArrayList<FeedItem>();
+ for(Feed feed : filter.getFeeds())
+ {
+ FeedLoader loader = new FeedLoader(feed.getURL());
+ loader.fetchXML();
+ org.rssin.rss.Feed loadedFeed = loader.getFeed();
+ for(FeedItem item : loadedFeed.getPosts())
+ {
+ if(matchesKeyword(item))
+ {
+ resultingItems.add(item);
+ }
+ }
+ }
+
+ FeedSorter sorter = filter.getSorter();
+ return sorter.sortItems(resultingItems);
+ }
+
+ private boolean matchesKeyword(FeedItem item)
+ {
+ for(Keyword keyword : filter.getKeywords())
+ {
+ if(contains(item.getTitle(), keyword.getKeyword()))
+ {
+ return true;
+ }
+ }
+
+ return filter.getKeywords().size() == 0;
+ }
+
+ private static boolean contains( String haystack, String needle ) {
+ haystack = haystack == null ? "" : haystack;
+ needle = needle == null ? "" : needle;
+
+ return haystack.toLowerCase().contains(needle.toLowerCase());
+ }
+}
diff --git a/app/src/main/java/org/rssin/rssin/Filter.java b/app/src/main/java/org/rssin/rssin/Filter.java index a5a4cd9..e0e05d0 100644..100755 --- a/app/src/main/java/org/rssin/rssin/Filter.java +++ b/app/src/main/java/org/rssin/rssin/Filter.java @@ -2,6 +2,9 @@ package org.rssin.rssin; import android.text.TextUtils; +import org.rssin.neurons.FeedSorter; +import org.rssin.rss.FeedItem; + import java.io.Serializable; import java.util.ArrayList; import java.util.List; @@ -15,7 +18,8 @@ public class Filter implements Serializable { private final List<Feed> feeds; private final List<Keyword> keywords; - private String title = new String(""); + private String title = ""; + private FeedSorter sorter; public Filter() { feeds = new ArrayList<>(); @@ -65,4 +69,7 @@ public class Filter implements Serializable { this.title = title; } + public FeedSorter getSorter() { + return sorter; + } } |