<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <link href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.0-alpha1/dist/css/bootstrap.min.css" rel="stylesheet"
        integrity="sha384-GLhlTQ8iRABdZLl6O3oVMWSktQOp6b7In1Zl3/Jr59b6EGGoI1aFkw7cmDA6j6gD" crossorigin="anonymous">
    <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.3.0/css/all.min.css"
        integrity="sha512-SzlrxWUlpfuzQ+pcUCosxcglQRNAq/DZjVsC0lE40xsADsfeQoEypE+enwcOiGjk/bSuGGKHEyjSoQ1zVisanQ=="
        crossorigin="anonymous" referrerpolicy="no-referrer" />
</head>
</html>
3
Xn                 @   sX   d dl mZ d dlmZ d dlmZmZmZ d dlm	Z	m
Z
mZmZ G dd deZdS )   )CharSetProber)CodingStateMachine)LanguageFilterProbingStateMachineState)HZ_SM_MODELISO2022CN_SM_MODELISO2022JP_SM_MODELISO2022KR_SM_MODELc                   sV   e Zd ZdZd fdd	Z fddZedd Zed	d
 Zdd Z	dd Z
  ZS )EscCharSetProberz
    This CharSetProber uses a "code scheme" approach for detecting encodings,
    whereby easily recognizable escape or shift sequences are relied on to
    identify these encodings.
    Nc                s   t t| j|d g | _| jtj@ rD| jjtt	 | jjtt
 | jtj@ r`| jjtt | jtj@ r|| jjtt d | _d | _d | _d | _| j  d S )N)lang_filter)superr   __init__	coding_smr   r   ZCHINESE_SIMPLIFIEDappendr   r   r   ZJAPANESEr	   ZKOREANr
   active_sm_count_detected_charset_detected_language_statereset)selfr   )	__class__ /usr/lib/python3.6/escprober.pyr   *   s    zEscCharSetProber.__init__c                sN   t t| j  x"| jD ]}|s qd|_|j  qW t| j| _d | _d | _d S )NT)	r   r   r   r   activelenr   r   r   )r   r   )r   r   r   r   :   s    zEscCharSetProber.resetc             C   s   | j S )N)r   )r   r   r   r   charset_nameE   s    zEscCharSetProber.charset_namec             C   s   | j S )N)r   )r   r   r   r   languageI   s    zEscCharSetProber.languagec             C   s   | j r
dS dS d S )NgGz?g        )r   )r   r   r   r   get_confidenceM   s    zEscCharSetProber.get_confidencec             C   s   x|D ]}x| j D ]}| s|j r&q|j|}|tjkrhd|_|  jd8  _| jdkrtj| _| j	S q|tj
krtj| _|j | _|j| _| j	S qW qW | j	S )NFr       )r   r   Z
next_stater   ZERRORr   r   ZNOT_MEr   stateZITS_MEZFOUND_ITZget_coding_state_machiner   r   r   )r   Zbyte_strcr   Zcoding_stater   r   r   feedS   s"    





zEscCharSetProber.feed)N)__name__
__module____qualname____doc__r   r   propertyr   r   r   r"   __classcell__r   r   )r   r   r   #   s   r   N)Zcharsetproberr   Zcodingstatemachiner   Zenumsr   r   r   Zescsmr   r   r	   r
   r   r   r   r   r   <module>   s   