upgraded newsfeed ad posts detection
added support for reposts refactored copyright posts detection updated adblock filters
This commit is contained in:
@@ -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;
|
||||
|
||||
|
||||
@@ -0,0 +1,5 @@
|
||||
appcent
|
||||
//t.me/
|
||||
vk.com
|
||||
crypt
|
||||
bitcoin
|
||||
@@ -56,4 +56,29 @@ cпocоб зaрaбoтать
|
||||
в закрепленном Комментарии
|
||||
В закрепленном комментарии
|
||||
В Закрепленном комментарии
|
||||
В закрепленном Комментарии
|
||||
В закрепленном Комментарии
|
||||
Успей подать заявку
|
||||
Успей Подать Заявку
|
||||
Успей подать Заявку
|
||||
успей Подать Заявку
|
||||
успей подать заявку
|
||||
успей Подать заявку
|
||||
ПОСМОТРЕТЬ ФУЛЛ
|
||||
ПОСМОТРЕТЬ ИСТОЧНИК
|
||||
посмотреть фулл
|
||||
посмотреть источник
|
||||
ТЫК 👉
|
||||
тык 👉
|
||||
ТЫК👉
|
||||
тык👉
|
||||
Успей подписаться
|
||||
успей подписаться
|
||||
успей Подписаться
|
||||
Успей Подписаться
|
||||
Смотри источник
|
||||
Смотри Источник
|
||||
смотри источник
|
||||
Смотри ист
|
||||
скорее подписывайся
|
||||
пиши боту
|
||||
ПИШИ БОТУ
|
||||
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user