main.js - Rizerr/LineAlphatJS GitHub Wiki

Welcome to the LineAlphatJS wiki! const LineAPI = require ( ' ./api ' ); const { Message , OpType , Location } = require ( ' ../curve-thrift/line_types ' ); biarkan exec = require ( ' child_process ' ). exec ;

const myBot = [ ' uf51ed4f092b7686f297a23ed3789ae34 ' ];

fungsi isAdminOrBot ( rizer ) { kembali myBot . termasuk (rizer); }

class LINE memperluas LineAPI { konstruktor () { super (); ini . penerimaID = ' ' ; ini . checkReader = []; ini . stateStatus = { membatalkan : 0 , tendangan : 0 , } }

getOprationType ( operasi ) {
    untuk ( biarkan kunci dalam OpType) {
        jika ( operasi . tipe  == OpType [key]) {
            if (key ! ==  ' NOTIFIED_UPDATE_PROFILE ' ) {
                konsol . info ( ` [* $ { operations . type } ] $ { key }  ` );
            }
        }
    }
}

jajak pendapat ( operasi ) {
    jika ( operasi . type  ==  25  ||  operasi . tipe  ==  26 ) {
        // console.log (operasi);
        const  txt  = ( operasi . pesan . teks  ! ==  ' '  &&  operasi . pesan . teks  ! =  nol ) ?  operasi . pesan . teks  :  ' ' ;
        biarkan pesan =  baru  Pesan ( operasi . pesan );
        ini . receiverID  =  pesan . untuk  = ( operasi . pesan . ke  === myBot [ 0 ]) ?  operasi . pesan . From_  :  operasi . pesan . untuk ;
        Obyek . menetapkan (pesan, {ct :  operasi . createdTime . toString ()});
        ini . textMessage (txt, pesan)
    }

    jika ( operasi . tipe  ==  13  &&  ini . stateStatus . membatalkan  ==  1 ) {
        ini . cancelAll ( operasi . rizer1 );
    }

    jika ( operasi . tipe  ==  19 ) { // ada tendangan
        // op1 = group nya
        // tendangan op2 = yang 'nge'
        // op3 = yang 'di' kick
        jika ( isAdminOrBot ( operasi . rizer3 )) {
            ini . _invite ( operasi . rizer1 , [ operasi . rizer3 ]);
        }
        jika ( ! isAdminOrBot ( operasi . rizer2 )) {
            ini . _kickMember ( operasi . rizer1 , [ operasi . rizer3 ]);
        } 

    }

    jika ( operasi . tipe  ==  55 ) { // ADA reader

        const  idx  =  ini . checkReader . findIndex (( v ) => {
            jika ( v . Kelompok  ==  operasi . param1 ) {
                kembali v
            }
        })
        jika ( ini . checkReader . panjang  <  1  || idx ==  - 1 ) {
            ini . checkReader . dorongan ({group :  operasi . param1 , pengguna : [ operasi . param2 ], timeSeen : [ operasi . param3 ]});
        } lain {
            untuk ( var i =  0 ; i <  this . checkReader . length ; i ++ ) {
                jika ( ini . checkReader [i]. Kelompok  ==  operasi . param1 ) {
                    jika ( ! ini . checkReader [i]. pengguna . meliputi ( operasi . param2 )) {
                        ini . checkReader [i]. pengguna . dorongan ( operasi . param2 );
                        ini . checkReader [i]. timeSeen . dorongan ( operasi . param3 );
                    }
                }
            }
        }
    }

    jika ( operasi . tipe  ==  13 ) { // diinvite
        jika ( isAdminOrBot ( operasi . rizer1 )) {
            kembali  ini . _acceptGroupInvitation ( operasi . param1 );
        } lain {
            kembali  ini . _cancel ( operasi . rizer1 , myBot);
        }
    }
    ini . getOprationType (operasi);
}

async  cancelAll ( group ) {
    biarkan {listPendingInvite} =  menanti  ini . searchGroup (group);
    jika ( listPendingInvite . length  >  0 ) {
        ini . _cancel (group, listPendingInvite);
    }
}

asinkron  searchGroup ( group ) {
    biarkan listPendingInvite = [];
    biarkan thisgroup =  menanti  ini . _getGroups ([gid]);
    jika (thisgroup [ 0 ]. invitee  ! ==  null ) {
        listPendingInvite = thisgroup [ 0 ]. undangan . peta (( kunci ) => {
            kembali  kunci . pertengahan ;
        });
    }
    biarkan listMember = thisgroup [ 0 ]. anggota . peta (( kunci ) => {
        kembali {pertengahan :  kunci . pertengahan , dn :  kunci . displayName };
    });

    kembali {
        listMember,
        listPendingInvite
    }
}

setState ( seq ) {
    jika ( isAdminOrBot ( seq . dari )) {
        biarkan [action, status] =  seq . teks . split ( '  ' );
        const  tindakan  =  tindakan . toLowerCase ();
        const  negara  =  Status . toLowerCase () ==  ' on '  ?  1  :  0 ;
        ini . stateStatus [action] = state;
        ini . _sendMessage (seq, ` Status: \ n $ { JSON . stringify ( ini . stateStatus ) } ` );
    } lain {
        ini . _sendMessage (seq, ` Anda Tidak Admin ` );
    }
}

sebutkan ( listMember ) {
    biarkan mentionStrings = [ ' ' ];
    biarkan pertengahan = [ ' ' ];
    untuk ( var i =  0 ; i <  listMember . length ; i ++ ) {
        mentionStrings . push ( ' @ ' + listMember [i] displayName + ' \ n ' );
        pertengahan . push (listMember [i] pertengahan );
    }
    biarkan string =  mentionStrings . Bergabunglah ( ' ' );
    biarkan anggota =  string . split ( ' @ ' ). iris ( 1 );
    
    biarkan tmp =  0 ;
    biarkan memberStart = [];
    biarkan mentionMember =  member . peta (( v , k ) => {
        biarkan z = tmp + =  v . panjang  +  1 ;
        biarkan akhir = z -  1 ;
        memberStart . push (akhir);
        biarkan mentionz =  ` { "S": " $ { ( Isnan (memberStart [k -  1 ] +  1 ) ?  0  : memberStart [k -  1 ] +  1 ) } ", "E": " $ { end } ", "M": " $ { mid [k +  1 ] } "} ` ;
        kembali mentionz;
    })
    kembali {
        Nama :  mentionStrings . irisan ( 1 ),
        cmddata : { PERHATIAN :  ` { "MENTIONEES": [ $ { mentionMember } ]} ` }
    }
}

async  leftGroupByName ( payload ) {
    biarkan gid =  menanti  ini . _findGroupByName (payload);
    untuk ( var i =  0 ; i <  gid . length ; i ++ ) {
        ini . _leaveGroup (gid [i]);
    }
}

pemeriksaan  ulang async ( cs , group ) {
    biarkan pengguna;
    untuk ( var i =  0 ; i <  cs . length ; i ++ ) {
        jika (cs [i] grup  == group) {
            pengguna = cs [i]. pengguna ;
        }
    }
    
    biarkan contactMember =  menanti  ini . _getContacts (pengguna);
    kembali  contactMember . peta (( z ) => {
            kembali {displayName :  z . displayName , pertengahan :  z . pertengahan };
        });
}

removeReaderByGroup ( groupID ) {
    const  groupIndex  =  ini . checkReader . findIndex ( v  => {
        if ( v . group  == groupID) {
            kembali v
        }
    })

    jika (groupIndex ! =  - 1 ) {
        ini . checkReader . sambatan (groupIndex, 1 );
    }
}

async  textMessage ( textMessages , seq ) {
    biarkan [cmd, ... payload] =  textMessages . split ( '  ' );
    payload =  payload . Bergabunglah ( '  ' );
    biarkan txt =  textMessages . toLowerCase ();
    biarkan messageID =  seq . id ;

    if (cmd ==  ' cancel ' ) {
        jika (payload ==  ' group ' ) {
            biarkan groupid =  menanti  ini . _getGroupsInvited ();
            untuk ( biarkan i =  0 ; i <  groupid . length ; i ++ ) {
                ini . _rejectGroupInvitation (groupid [i])                    
            }
            kembali ;
        }
        jika ( ini . stateStatus . membatalkan  ==  1 ) {
            ini . cancelAll ( seq . untuk );
        }
    }

    jika (txt ==  ' halo '  || txt ==  ' riz ' ) {
        ini . _sendMessage (seq, ' halo disini rizer :) ' );
    }

    jika (txt ==  ' speed ' ) {
        const  curTime  = ( Tanggal . sekarang () /  1000 );
        menunggu  ini . _sendMessage (seq, ' processing .... ' );
        const  rtime  = ( Tanggal . sekarang () /  1000 ) - curTime;
        menunggu  ini . _sendMessage (seq, ` $ { rtime } kedua ` );
    }

    jika (txt ===  ' kernel ' ) {
        exec ( ' uname -a; ptime; id; whoami ' , ( err , sto ) => {
            ini . _sendMessage (seq, sto);
        })
    }

    jika (txt ===  ' kickall '  &&  ini . stateStatus . menendang  ==  1  &&  isAdminOrBot ( seq . dari )) {
        biarkan {listMember} =  menanti  ini . searchGroup ( seq . untuk );
        untuk ( var i =  0 ; i <  listMember . length ; i ++ ) {
            jika ( ! isAdminOrBot (listMember [i] pertengahan )) {
                ini . _kickMember ( seq . untuk , [listMember [i]. mid ])
            }
        }
    }

    if (txt ==  ' setpoint ' ) {
        ini . _sendMessage (seq, ` Setpoint untuk check pembaca. ` );
        ini . removeReaderByGroup ( seq . untuk );
    }

    jika (txt ==  ' clear ' ) {
        ini . checkReader  = []
        ini . _sendMessage (seq, ` Hapus semua centang pembaca pada memori ` );
    }  

    jika (txt ==  ' recheck ' ) {
        biarkan rec =  menanti  ini . recheck ( ini . checkReader , seq . untuk );
        const  menyebutkan  =  menanti  ini . sebutkan (rec);
        seq . contentMetadata  =  sebutan . cmddata ;
        menunggu  ini . _sendMessage (seq, menyebutkan . nama . bergabung ( ' ' ));
        
    }
    jika ( seq . contentType  ==  13 ) {
        seq . contentType  =  0
        ini . _sendMessage (seq, seq . contentMetadata . mid );
    }

    jika (txt ==  ' setpoint for check reader. ' ) {
        ini . searchReader (seq);
    }

    jika (txt ==  ' clearall ' ) {
        ini . checkReader  = [];
    }

    const  action  = [ ' cancel on ' , ' batalkan off ' , ' kick on ' , ' kick off ' ]
    jika ( tindakan . meliputi (txt)) {
        ini . setState (seq)
    }

    jika (txt ==  ' myid ' ) {
        ini . _sendMessage (seq, ` ID Anda: $ { seq . dari } ` );
    }

    jika (txt ==  ' speedtest '  &&  isAdminOrBot ( seq . dari )) {
        exec ( ' speedtest-cli --server 6581 ' , ( err , res ) => {
                ini . _sendMessage (seq, res)
        })
    }

    const  joinByUrl  = [ ' ourl ' , ' curl ' ];
    jika ( joinByUrl . meliputi (txt)) {
        ini . _sendMessage (seq, ` Updating group ... ` );
        biarkan updateGroup =  menanti  ini . _getGroup ( seq . untuk );
        updateGroup . mencegahJoinByTicket  =  true ;
        jika (txt ==  ' ourl ' ) {
            updateGroup . mencegahJoinByTicket  =  salah ;
            const  groupUrl  =  menanti  ini . _reissueGroupTicket ( seq . untuk )
            ini . _sendMessage (seq, ` Kelompok garis = garis: // ti / g / $ { groupUrl } ` );
        }
        menunggu  ini . _updateGroup (updateGroup);
    }

    if (cmd ==  ' join ' ) { // untuk bergabung dengan group pake qrcode contoh: join line: // anu / g / anu
        const [ ticketId ] =  payload . split ( ' g / ' ). sambatan ( - 1 );
        biarkan {id} =  menanti  ini . _findGroupByTicket (ticketId);
        menunggu  ini . _acceptGroupInvitationByTicket (id, ticketId);
    }

    if (cmd ==  ' spm '  &&  isAdminOrBot ( seq . from )) { // untuk spam invite contoh: spm <mid>
        untuk ( var i =  0 ; i <  4 ; i ++ ) {
            ini . _createGroup ( ` spam yang ` , payload);
        }
    }
    
    jika (cmd ==  ' meninggalkan '   &&  isAdminOrBot ( seq . dari )) { // untuk review kiri kelompok Dari kelompok ATAU spam yang contoh kiri <Alfath>
        ini . leftGroupByName (payload)
    }

    jika (cmd ==  ' lirik ' ) {
        biarkan lirik =  menanti  ini . _searchLyrics (payload);
        ini . _sendMessage (seq, lirik);
    }

    jika (cmd ===  ' ip ' ) {
        exec ( ` curl ipinfo.io/ $ { payload } ` , ( err , res ) => {
             hasil  const =  JSON . parse (res);
            if ( typeof  result . error  ==  ' undefined ' ) {
                const { org , country , loc , city , region } = hasil;
                coba {
                    const [ garis lintang , bujur ] =  loc . split ( ' , ' );
                    biarkan lokasi =  baru  Lokasi ();
                    Obyek . menetapkan (lokasi, {
                        title :  ` Lokasi: ` ,
                        alamat :  ` $ { org }  $ { city } [ $ { region } ] \ n $ { payload } ` ,
                        lintang : garis lintang,
                        bujur : bujur,
                        telepon :  null 
                    })
                    const  Obj  = {
                        teks :  ' Lokasi ' ,
                        lokasi : lokasi,
                        contentType :  0 ,
                    }
                    Obyek . menetapkan (seq, Obj)
                    ini . _sendMessage (seq, ' Lokasi ' );
                } catch (err) {
                    ini . _sendMessage (seq, ' Tidak Ditemukan ' );
                }
            } lain {
                ini . _sendMessage (seq, ' Lokasi Tidak Ditemukan, Mungkin di dalem goa ' );
            }
        })
    }
}

}

modul . ekspor = new LINE ();

⚠️ **GitHub.com Fallback** ⚠️