<commit_before>prelude = require 'prelude-ls'

window.STATUSTIMELINE = {}
	..set-event = ($status) ->
		function check-favorited
			($status.attr \data-is-favorited) == \true
		
		function check-reposted
			($status.attr \data-is-reposted) == \true
			
		status-id = $status.attr \data-id
		user-name = $status.attr \data-user-name
		text = $status.attr \data-text
		
		$status
			# Init reply button
			..find 'article > .article-main > .main > .footer > .actions > .reply > .reply-button' .click ->
				text = window.prompt "#{user-name}への返信"
				if text? and not empty text
					$.ajax config.api-url + '/status/update' {
						type: \post
						data: {
							text
							'in-reply-to-status-id': status-id
						}
						data-type: \json
						xhr-fields: {+with-credentials}}
					.done (data) ->
						#
					.fail (data) ->
						error-code = JSON.parse data.response-text .error.code
						switch error-code
						| \empty-text => window.alert 'テキストを入力してください。'
						| \too-long-text => window.alert 'テキストが長過ぎます。'
						| \duplicate-content => window.alert '投稿が重複しています。'
						| \failed-attach-image => window.alert '画像の添付に失敗しました。Misskeyが対応していない形式か、ファイルが壊れているかもしれません。'
						| _ => window.alert "不明なエラー (#error-code)"
				
			# Init favorite button
			..find 'article > .article-main > .main > .footer > .actions > .favorite > .favorite-button' .click ->
				$button = $ @
					..attr \disabled on
				if check-favorited!
					$status.attr \data-is-favorited \false
					$.ajax "#{config.api-url}/status/unfavorite" {
						type: \delete
						data: {'status-id': $status.attr \data-id}
						data-type: \json<commit_msg>Improve usability<commit_after>prelude = require 'prelude-ls'

window.STATUSTIMELINE = {}
	..set-event = ($status) ->
		function check-favorited
			($status.attr \data-is-favorited) == \true
		
		function check-reposted
			($status.attr \data-is-reposted) == \true
			
		status-id = $status.attr \data-id
		user-screen-name = $status.attr \data-user-screen-name
		user-name = $status.attr \data-user-name
		text = $status.attr \data-text
		
		$status
			# Init reply button
			..find 'article > .article-main > .main > .footer > .actions > .reply > .reply-button' .click ->
				text = window.prompt "#{user-name}への返信" "@#{user-screen-name} "
				if text? and not empty text
					$.ajax config.api-url + '/status/update' {
						type: \post
						data: {
							text
							'in-reply-to-status-id': status-id
						}
						data-type: \json
						xhr-fields: {+with-credentials}}
					.done (data) ->
						#
					.fail (data) ->
						error-code = JSON.parse data.response-text .error.code
						switch error-code
						| \empty-text => window.alert 'テキストを入力してください。'
						| \too-long-text => window.alert 'テキストが長過ぎます。'
						| \duplicate-content => window.alert '投稿が重複しています。'
						| \failed-attach-image => window.alert '画像の添付に失敗しました。Misskeyが対応していない形式か、ファイルが壊れているかもしれません。'
						| _ => window.alert "不明なエラー (#error-code)"
				
			# Init favorite button
			..find 'article > .article-main > .main > .footer > .actions > .favorite > .favorite-button' .click ->
				$button = $ @
					..attr \disabled on
				if check-favorited!
					$status.attr \data-is-favorited \false
					$.ajax "#{config.api-url}/status/unfavorite" {
						type: \delete
						data: {'status-id': $status.attr \data-id}
						data-type: \json
{'fraction_non_alphanumeric': 0.16003589590188452, 'fraction_numerical': 0.0, 'mean_word_length': 2.3675730110775426, 'pattern_counts': {'":': 0, '<': 3, '<?xml version=': 0, '>': 47, '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': '2553024', 'n_tokens_mistral': 1581, 'n_tokens_neox': 1248, 'n_words': 236}