xGetter icon indicating copy to clipboard operation
xGetter copied to clipboard

Add mixdrop.co with this:

Open KayckMatias opened this issue 2 years ago • 0 comments

I make a class for mixdrop getter, add in project :D

/*
This is direct link getter for Mixdrop
    By
LordzSpectron
 */

public class Mixdrop {
    public static void fetch(String url, final LowCostVideo.OnTaskCompleted onComplete){
        AndroidNetworking.get(url)
                .setUserAgent(agent)
                .build()
                .getAsString(new StringRequestListener() {
                    @Override
                    public void onResponse(String response) {
                        ArrayList<XModel> xModels = parse(response);
                        if (xModels!=null){
                            onComplete.onTaskCompleted(xModels,false);
                        }else onComplete.onError();
                    }

                    @Override
                    public void onError(ANError anError) {
                        onComplete.onError();
                        Log.d("Mixdrop", String.valueOf(anError));
                    }
                });
    }

    private static ArrayList<XModel> parse(String response){
        JSUnpacker jsUnpacker = new JSUnpacker(getEvalCode(response));
        if(jsUnpacker.detect()) {
            String src = getSrc(jsUnpacker.unpack());
            if (src!=null && src.length()>0){
                XModel xModel = new XModel();
                src = "https:" + src;
                xModel.setUrl(src);
                xModel.setQuality("Normal");

                ArrayList<XModel> xModels = new ArrayList<>();
                xModels.add(xModel);
                return xModels;
            }
        }else {
            return null;
        }
        return null;
    }


    private static String getSrc(String code){
        final String regex = "wurl=?\"(.*?)\";";
        final Pattern pattern = Pattern.compile(regex, Pattern.MULTILINE);
        final Matcher matcher = pattern.matcher(code);
        if (matcher.find()) {
            return matcher.group(1);
        }
        return null;
    }

    private static String getEvalCode(String html){
        final String regex = "eval(.*)";
        final Pattern pattern = Pattern.compile(regex, Pattern.MULTILINE);
        final Matcher matcher = pattern.matcher(html);
        if (matcher.find()) {
            return matcher.group(0);
        }
        return null;
    }
}

KayckMatias avatar Aug 18 '21 05:08 KayckMatias