Move new Http query together with other ApacheHttpRequests

This commit is contained in:
Mikel 2017-07-28 14:38:54 +01:00
parent 3b17d96bae
commit 6412e15f20
4 changed files with 29 additions and 31 deletions

View file

@ -273,7 +273,8 @@ public class ContributionsActivity
CommonsApplication application = CommonsApplication.getInstance();
compositeDisposable.add(
RxJava2Tasks.getUploadCount(application.getCurrentAccount().name)
CommonsApplication.getInstance().getMWApi()
.getUploadCount(application.getCurrentAccount().name)
.subscribeOn(Schedulers.io())
.observeOn(AndroidSchedulers.mainThread())
.subscribe(

View file

@ -1,30 +0,0 @@
package fr.free.nrw.commons.contributions;
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.net.HttpURLConnection;
import java.net.URL;
import java.util.Locale;
import fr.free.nrw.commons.PageTitle;
import io.reactivex.Single;
class RxJava2Tasks {
private static final String UPLOAD_COUNT_URL_TEMPLATE =
"https://tools.wmflabs.org/urbanecmbot/uploadsbyuser/uploadsbyuser.py?user=%s";
static Single<Integer> getUploadCount(String userName) {
return Single.fromCallable(() -> {
URL url = new URL(String.format(Locale.ENGLISH, UPLOAD_COUNT_URL_TEMPLATE,
new PageTitle(userName).getText()));
HttpURLConnection urlConnection = (HttpURLConnection) url.openConnection();
BufferedReader bufferedReader = new BufferedReader(new
InputStreamReader(urlConnection.getInputStream()));
String uploadCount = bufferedReader.readLine();
bufferedReader.close();
urlConnection.disconnect();
return Integer.parseInt(uploadCount);
});
}
}

View file

@ -17,6 +17,7 @@ import org.apache.http.impl.client.DefaultHttpClient;
import org.apache.http.impl.conn.tsccm.ThreadSafeClientConnManager;
import org.apache.http.params.BasicHttpParams;
import org.apache.http.params.CoreProtocolPNames;
import org.apache.http.util.EntityUtils;
import org.mediawiki.api.ApiResult;
import org.mediawiki.api.MWApi;
@ -27,10 +28,13 @@ import java.util.ArrayList;
import java.util.Collections;
import java.util.Date;
import java.util.List;
import java.util.Locale;
import fr.free.nrw.commons.BuildConfig;
import fr.free.nrw.commons.PageTitle;
import fr.free.nrw.commons.Utils;
import in.yuvi.http.fluent.Http;
import io.reactivex.Single;
import timber.log.Timber;
/**
@ -366,4 +370,22 @@ public class ApacheHttpClientMediaWikiApi implements MediaWikiApi {
return new UploadResult(resultStatus, dateUploaded, canonicalFilename, imageUrl);
}
}
@Override
@NonNull
public Single<Integer> getUploadCount(String userName) {
final String UPLOAD_COUNT_URL_TEMPLATE =
"https://tools.wmflabs.org/urbanecmbot/uploadsbyuser/uploadsbyuser.py?user=%s";
return Single.fromCallable(() -> {
String url = String.format(
Locale.ENGLISH,
UPLOAD_COUNT_URL_TEMPLATE,
new PageTitle(userName).getText());
HttpResponse response = Http.get(url).use(httpClient).asResponse();
String uploadCount = EntityUtils.toString(response.getEntity()).trim();
return Integer.parseInt(uploadCount);
});
}
}

View file

@ -7,6 +7,8 @@ import java.io.IOException;
import java.io.InputStream;
import java.util.List;
import io.reactivex.Single;
public interface MediaWikiApi {
String getAuthCookie();
@ -52,6 +54,9 @@ public interface MediaWikiApi {
@NonNull
LogEventResult logEvents(String user, String lastModified, String queryContinue, int limit) throws IOException;
@NonNull
Single<Integer> getUploadCount(String userName);
interface ProgressListener {
void onProgress(long transferred, long total);
}