<commit_before>import * as bq from 'bee-queue';

import request from '../../../remote/activitypub/request';
import { queueLogger } from '../../logger';
import { registerOrFetchInstanceDoc } from '../../../services/register-or-fetch-instance-doc';
import Instance from '../../../models/instance';

export default async (job: bq.Job, done: any): Promise<void> => {
	try {
		await request(job.data.user, job.data.to, job.data.content);

		// Update stats
		registerOrFetchInstanceDoc(job.data.user.host).then(i => {
			Instance.update({ _id: i._id }, {
				$set: {
					latestRequestSentAt: new Date(),
					latestStatus: 200
				}
			});
		});

		done();
	} catch (res) {
		// Update stats
		registerOrFetchInstanceDoc(job.data.user.host).then(i => {
			Instance.update({ _id: i._id }, {
				$set: {
					latestRequestSentAt: new Date(),
					latestStatus: res != null && res.hasOwnProperty('statusCode') ? res.statusCode : null
				}
			});
		});

		if (res != null && res.hasOwnProperty('statusCode')) {
			queueLogger.warn(`deliver failed: ${res.statusCode} ${res.statusMessage} to=${job.data.to}`);

			if (res.statusCode >= 400 && res.statusCode < 500) {
				// HTTPステータスコード4xxはクライアントエラーであり、それはつまり
				// 何回再送しても成功することはないということなのでエラーにはしないでおく
				done();
			} else {
				done(res.statusMessage);
			}
		} else {
			queueLogger.warn(`deliver failed: ${res} to=${job.data.to}`);
			done();
		}
	}
};<commit_msg>Fix bug<commit_after>import * as bq from 'bee-queue';

import request from '../../../remote/activitypub/request';
import { queueLogger } from '../../logger';
import { registerOrFetchInstanceDoc } from '../../../services/register-or-fetch-instance-doc';
import Instance from '../../../models/instance';

export default async (job: bq.Job, done: any): Promise<void> => {
	const { host } = new URL(job.data.to);

	try {
		await request(job.data.user, job.data.to, job.data.content);

		// Update stats
		registerOrFetchInstanceDoc(host).then(i => {
			Instance.update({ _id: i._id }, {
				$set: {
					latestRequestSentAt: new Date(),
					latestStatus: 200
				}
			});
		});

		done();
	} catch (res) {
		// Update stats
		registerOrFetchInstanceDoc(host).then(i => {
			Instance.update({ _id: i._id }, {
				$set: {
					latestRequestSentAt: new Date(),
					latestStatus: res != null && res.hasOwnProperty('statusCode') ? res.statusCode : null
				}
			});
		});

		if (res != null && res.hasOwnProperty('statusCode')) {
			queueLogger.warn(`deliver failed: ${res.statusCode} ${res.statusMessage} to=${job.data.to}`);

			if (res.statusCode >= 400 && res.statusCode < 500) {
				// HTTPステータスコード4xxはクライアントエラーであり、それはつまり
				// 何回再送しても成功することはないということなのでエラーにはしないでおく
				done();
			} else {
				done(res.statusMessage);
			}
		} else {
			queueLogger.warn(`deliver failed: ${res} to=${job.data.to}`);
			done();
		}
	}
};
{'fraction_non_alphanumeric': 0.1853555005305978, 'fraction_numerical': 0.007074637424831978, 'mean_word_length': 3.18962962962963, 'pattern_counts': {'":': 0, '<': 7, '<?xml version=': 0, '>': 13, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '5091462', 'n_tokens_mistral': 1177, 'n_tokens_neox': 1003, 'n_words': 185}