Skip to content

Commit

Permalink
Revert "Adapt to MAL captcha; update packages" (#23)
Browse files Browse the repository at this point in the history
* Revert "Adapt to MAL captcha; update packages (#22)"

This reverts commit f45296c.

* rev

* redo fixes

Co-authored-by: Grayson Gilmore <[email protected]>
  • Loading branch information
gilmoreg and grgilmor authored Apr 26, 2021
1 parent 1c84d57 commit 8e2fbe2
Show file tree
Hide file tree
Showing 10 changed files with 4,096 additions and 2,999 deletions.
5 changes: 0 additions & 5 deletions __mocks__/grecaptcha.ts

This file was deleted.

3 changes: 1 addition & 2 deletions __tests__/MAL.test.ts
Original file line number Diff line number Diff line change
Expand Up @@ -4,8 +4,7 @@ import * as fetchMock from 'fetch-mock';
import * as fakes from '../__testutils__/testData';
import MockMAL from '../__mocks__/src/MockMAL';

jest.mock('../src/Util');
jest.mock('grecaptcha');
jest.mock('../src/Util')

const createFakeMAL = () => new MAL('test', 'csrfToken', new FakeLog(), fakes.createFakeDomMethods());

Expand Down
9 changes: 4 additions & 5 deletions __tests__/MALEntry.test.ts
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,6 @@ import { MALEntryAnime, MALEntryManga } from '../src/MALEntry';
import * as fakes from '../__testutils__/testData';

jest.mock('../src/Util')
jest.mock('grecaptcha')

const fakeDomMethods = fakes.createFakeDomMethods();

Expand Down Expand Up @@ -54,7 +53,7 @@ describe('formData()', () => {
const malAnime = fakes.createFakeMALAnime();
const alAnime = fakes.createFakeAnilistAnime();
const malEntry = new MALEntryAnime(alAnime, malAnime, 'csrfToken', fakeDomMethods);
const result = await malEntry.formData('captcha');
const result = await malEntry.formData();
const json = parseFormData(result);
expect(json).toMatchSnapshot();
expect(json['add_anime%5Bis_rewatching%5D']).toBeUndefined();
Expand All @@ -64,7 +63,7 @@ describe('formData()', () => {
const malManga = fakes.createFakeMALManga();
const alManga = fakes.createFakeAnilistManga();
const malEntry = new MALEntryManga(alManga, malManga, 'csrfToken', fakeDomMethods);
const result = await malEntry.formData('captcha');
const result = await malEntry.formData();
const json = parseFormData(result);
expect(json).toMatchSnapshot();
expect(json['add_manga%5Bis_rewatching%5D']).toBeUndefined();
Expand All @@ -74,7 +73,7 @@ describe('formData()', () => {
const malAnime = fakes.createFakeMALAnime();
const alAnime = fakes.createFakeAnilistAnime({ status: 'REPEATING' });
const malEntry = new MALEntryAnime(alAnime, malAnime, 'csrfToken', fakeDomMethods);
const result = await malEntry.formData('captcha');
const result = await malEntry.formData();
const json = parseFormData(result);
expect(json['add_anime%5Bis_rewatching%5D']).toEqual('1');
});
Expand All @@ -83,7 +82,7 @@ describe('formData()', () => {
const malManga = fakes.createFakeMALManga();
const alManga = fakes.createFakeAnilistManga({ status: 'REPEATING' });;
const malEntry = new MALEntryManga(alManga, malManga, 'csrfToken', fakeDomMethods);
const result = await malEntry.formData('captcha');
const result = await malEntry.formData();
const json = parseFormData(result);
expect(json['add_manga%5Bis_rewatching%5D']).toEqual('1');
});
Expand Down
2 changes: 0 additions & 2 deletions __tests__/__snapshots__/MALEntry.test.ts.snap
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,6 @@ Object {
"anime_id": "1",
"astatus": "2",
"csrf_token": "csrfToken",
"g-recaptcha-response": "captcha",
"submitIt": "0",
}
`;
Expand Down Expand Up @@ -52,7 +51,6 @@ Object {
"add_manga%5Btags%5D": "",
"csrf_token": "csrfToken",
"entry_id": "0",
"g-recaptcha-response": "captcha",
"last_completed_vol": "",
"manga_id": "2",
"submitIt": "0",
Expand Down
4 changes: 0 additions & 4 deletions __testutils__/setupJest.ts
Original file line number Diff line number Diff line change
@@ -1,10 +1,6 @@
import * as fetch from 'node-fetch';
import mockGrecaptcha from '../__mocks__/grecaptcha';

// @ts-ignore
global.fetch = fetch;
// @ts-ignore
global.grecaptcha = mockGrecaptcha;

/*
NodeJS.Global.setTimeout: (callback: (...args: any[]) => void, ms: number, ...args: any[]) => NodeJS.Timer
Expand Down
23 changes: 9 additions & 14 deletions douki.user.js
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
// @name Douki
// @namespace http://gilmoreg.com
// @description Import Anime and Manga Lists from Anilist (see https://anilist.co/forum/thread/2654 for more info)
// @version 0.2.4
// @version 0.2.5
// @include https://myanimelist.net/*
// ==/UserScript==

Expand Down Expand Up @@ -497,9 +497,9 @@ class MAL {
const malHashMap = await this.getMALHashMap(type);
return anilistList.map(entry => MALEntry_1.createMALEntry(entry, malHashMap[entry.id], this.csrfToken, this.dom));
}
async malEdit(data, captcha) {
async malEdit(data) {
const { type, id } = data;
const formData = await data.formData(captcha);
const formData = await data.formData();
return fetch(`https://myanimelist.net/ownlist/${type}/${id}/edit?hideLayout`, {
credentials: 'include',
headers: {
Expand All @@ -525,15 +525,15 @@ class MAL {
throw new Error(`Error updating ${type} id ${id}`);
});
}
async malAdd(data, captcha) {
malAdd(data) {
return fetch(`https://myanimelist.net/ownlist/${data.type}/add.json`, {
method: 'post',
headers: {
'Accept': '*/*',
'Content-Type': 'application/x-www-form-urlencoded; charset=UTF-8',
'x-requested-with': 'XMLHttpRequest'
},
body: JSON.stringify(Object.assign(Object.assign({}, data.postData), { 'g-recaptcha-response': captcha }))
body: JSON.stringify(data.postData)
})
.then((res) => {
if (res.status === 200)
Expand All @@ -550,11 +550,8 @@ class MAL {
const fn = operation === 'add' ? this.malAdd : this.malEdit;
for (let item of list) {
await Util_1.sleep(500);
const captcha = await grecaptcha.execute("6Ld_1aIZAAAAAF6bNdR67ICKIaeXLKlbhE7t2Qz4", {
action: "social"
});
try {
await fn(item, captcha);
await fn(item);
itemCount++;
this.Log.updateCountLog(operation, type, itemCount);
}
Expand Down Expand Up @@ -733,7 +730,7 @@ class BaseMALEntry {
shouldAdd() {
return !this.malData;
}
formData(captcha) {
formData() {
throw new Error("Method not implemented.");
}
createPostData() {
Expand Down Expand Up @@ -785,7 +782,7 @@ class MALEntryAnime extends BaseMALEntry {
result.num_watched_episodes = Math.min(this.alData.progress, this.malData.anime_num_episodes);
return result;
}
async formData(captcha) {
async formData() {
const malFormData = new MALForm_1.MALForm(this.alData.type, this.alData.id);
await malFormData.get();
const formData = {
Expand All @@ -810,7 +807,6 @@ class MALEntryAnime extends BaseMALEntry {
'add_anime[comments]': malFormData.comments,
'add_anime[is_asked_to_discuss]': malFormData.discussionSetting,
'add_anime[sns_post_type]': malFormData.SNSSetting,
'g-recaptcha-response': captcha,
submitIt: 0,
csrf_token: this.csrfToken,
};
Expand Down Expand Up @@ -857,7 +853,7 @@ class MALEntryManga extends BaseMALEntry {
result.num_read_volumes = Math.min(this.alData.progressVolumes, this.malData.manga_num_volumes);
return result;
}
async formData(captcha) {
async formData() {
const malFormData = new MALForm_1.MALForm(this.alData.type, this.alData.id);
await malFormData.get();
const formData = {
Expand All @@ -883,7 +879,6 @@ class MALEntryManga extends BaseMALEntry {
'add_manga[comments]': malFormData.comments,
'add_manga[is_asked_to_discuss]': malFormData.discussionSetting,
'add_manga[sns_post_type]': malFormData.SNSSetting,
'g-recaptcha-response': captcha,
csrf_token: this.csrfToken,
submitIt: 0
};
Expand Down
Loading

0 comments on commit 8e2fbe2

Please sign in to comment.