upgraded newsfeed ad posts detection

added support for reposts
refactored copyright posts detection
updated adblock filters
This commit is contained in:
gdlbo
2022-06-27 15:15:42 +03:00
parent de31594250
commit 95ade723f9
4 changed files with 80 additions and 29 deletions
@@ -45,6 +45,7 @@ import java.io.InputStreamReader;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
import java.util.Objects;
public class Newsfeed{
public static List<String> mFilters;
@@ -54,36 +55,31 @@ public class Newsfeed{
mFilters = new ArrayList();
mFiltersLinks = new ArrayList();
getFilter("refsfilter", "Referals.txt");
getFilter("shortlinkfilter", "LinkShorter.txt");
getFilter("default_ad_list", "StandartFilter.txt");
getFilter("shitposting", "IDontWantToReadIt.txt");
String customfilters = getPrefsValue("spamfilters");
getFilter("refsfilter", "Referals.txt", mFilters);
getFilter("shortlinkfilter", "LinkShorter.txt", mFilters);
getFilter("default_ad_list", "StandartFilter.txt", mFilters);
getFilter("shitposting", "IDontWantToReadIt.txt", mFilters);
getFilter("blockcringecopyright", "CopyrightAds.txt", mFiltersLinks);
var customfilters = getPrefsValue("spamfilters");
if(!customfilters.isEmpty()){
mFilters.addAll(Arrays.asList(customfilters.split(", ")));
}
String linkfilter = getPrefsValue("linkfilter");
if(getBoolValue("blockvkcopyright", false)){
mFiltersLinks.add("vk.com");
}
var linkfilter = getPrefsValue("linkfilter");
if(!linkfilter.isEmpty()){
mFiltersLinks.addAll(Arrays.asList(linkfilter.split(", ")));
}
}
public static void getFilter(String boolname, String filename){
public static void getFilter(String boolname, String filename, List<String> list){
if(getBoolValue(boolname, true)){
try {
BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(getContext().getAssets().open(filename)));
while(true) {
String readLine = bufferedReader.readLine();
if(readLine != null){
mFilters.add(readLine);
list.add(readLine);
} else {
bufferedReader.close();
return;
@@ -96,7 +92,7 @@ public class Newsfeed{
} // Get needed filter list from assets
public static boolean injectFilters(JSONObject obj) throws JSONException{
String optString = obj.optString("type", "");
var optString = obj.optString("type", "");
if(isAds(optString) || isAuthorRecommendations(optString) || isPostRecommendations(optString) || isFriendsRecommendations(optString) || isRecomsGroup(optString) || isMusicBlock(optString) || isNewsBlock(optString)){
return false;
}
@@ -115,15 +111,40 @@ public class Newsfeed{
if(checkCaption(obj)) return false;
return !isGroupAds(obj);
if(isGroupAds(obj)) return false;
if(obj.optJSONArray("copy_history") != null){
return injectFiltersReposts(obj);
}
return true;
}
public static boolean injectFiltersReposts(JSONObject obj) throws JSONException{
var Array = Objects.requireNonNull(obj.optJSONArray("copy_history")).toString();
if(Array.isEmpty()) return true;
if(isAds(Array) || isAuthorRecommendations(Array) || isPostRecommendations(Array) || isFriendsRecommendations(Array) || isRecomsGroup(Array) || isMusicBlock(Array) || isNewsBlock(Array)){
return false;
}
if(isAds(Array) || isAuthorRecommendations(Array) || isPostRecommendations(Array) || isFriendsRecommendations(Array) || isMusicBlock(Array) || isNewsBlock(Array)){
return false;
}
if(isAds(Array) || isAuthorRecommendations(Array) || isPostRecommendations(Array) || isFriendsRecommendations(Array)){
return false;
}
return !isBadNew(Array);
}
private static boolean checkCopyright(JSONObject json) throws JSONException{
String linkfilter = getPrefsValue("linkfilter");
var linkfilter = getPrefsValue("linkfilter");
if(json.opt("copyright") != null){
JSONObject copyright = json.getJSONObject("copyright");
String copyrightlink = copyright.getString("link");
var copyright = json.getJSONObject("copyright");
var copyrightlink = copyright.getString("link");
for(String linkfilters : mFiltersLinks) {
if(copyrightlink.toLowerCase().contains(linkfilters.toLowerCase())){
@@ -164,7 +185,7 @@ public class Newsfeed{
public static boolean checkCaption(JSONObject postJson){
try {
JSONObject captionJson = postJson.getJSONObject("caption");
var captionJson = postJson.getJSONObject("caption");
if(Preferences.captions())
return true;
+5
View File
@@ -0,0 +1,5 @@
appcent
//t.me/
vk.com
crypt
bitcoin
+26 -1
View File
@@ -56,4 +56,29 @@ cпocоб зaрaбoтать
в закрепленном Комментарии
В закрепленном комментарии
В Закрепленном комментарии
В закрепленном Комментарии
В закрепленном Комментарии
Успей подать заявку
Успей Подать Заявку
Успей подать Заявку
успей Подать Заявку
успей подать заявку
успей Подать заявку
ПОСМОТРЕТЬ ФУЛЛ
ПОСМОТРЕТЬ ИСТОЧНИК
посмотреть фулл
посмотреть источник
ТЫК 👉
тык 👉
ТЫК👉
тык👉
Успей подписаться
успей подписаться
успей Подписаться
Успей Подписаться
Смотри источник
Смотри Источник
смотри источник
Смотри ист
скорее подписывайся
пиши боту
ПИШИ БОТУ
+8 -8
View File
@@ -53,18 +53,18 @@
android:title="@string/shitposting" />
<com.vtosters.lite.ui.MaterialSwitchPreference
android:defaultValue="false"
android:key="copyright_post"
android:summary="@string/feed_ads_sources_summary"
android:title="@string/feed_ads_sources" />
<com.vtosters.lite.ui.MaterialSwitchPreference
android:defaultValue="false"
android:key="blockvkcopyright"
android:summary="Блокировать посты с источником где есть ссылка на вк (группу, страницу или посты)"
android:title="Отключить посты с ссылкой на вк" />
android:key="blockcringecopyright"
android:summary="Блокировать посты с источником где есть ссылка на вк/телеграм (группу, страницу или посты) или на другие возможные ресурсы"
android:title="Отключить посты с возможной рекламой" />
<EditTextPreference
android:defaultValue=""
android:key="linkfilter"
android:title="Фильтр ссылок в источнике" />
<com.vtosters.lite.ui.MaterialSwitchPreference
android:defaultValue="false"
android:key="copyright_post"
android:summary="@string/feed_ads_sources_summary"
android:title="@string/feed_ads_sources" />
</PreferenceCategory>
<PreferenceCategory android:title="@string/vtlrecommend">
<com.vtosters.lite.ui.MaterialSwitchPreference