요즘 카톡봇 만들고 있었는데 덕분에 좋은 기능을 추가 할수있겠네요 감사합니다 채널순위 를 하고 싶어서 아래 댓글에있는 코딩을 그대로 복붙해서 사용해봤는데 채팅수는 표시가 잘되지만 채팅순위 를 할때 채팅순위 라고 치는분만 나오더군요 예시) a는 10번채팅 b는 5번채팅 했다고치면 올바르게 나와야하는 값 1위🥇 a 10 2위🥈 b 5 이렇게 나와야하는데 a 채팅순위 🥇| a 10 b 채팅순위 🥇| b 5 이렇게 채팅 순위 친 사람 만 인식돼서 이런문제는 어떻게 해결해야할까요?
Sans 이런거 까지하셨다니 정말 대단하시군요 전 아무겄도 못하는데
소스가 어케 되는지..아 혹시 채팅 순위도 가능할까요?
오픈채팅방 오시면 공지에 채팅순위 있어요
오픈채팅방 어떴게들어가요
마지막 }이게 빨갛게 떠요
var 채팅수 = {} ;
function response(room, msg, sender, isGroupChat, replier, imageDB, packageName){}
if(채팅수[sender]==undefined){
채팅수[sender]=0;
} else {
채팅수[sender]++;
}
if(msg=="/채팅수"){
replier.reply(sender+"님의 채팅수 : "+채팅수[sender]);
}
}
@@user-rt3vj5vb8yvar 채팅수 = {} ;
function response(room, msg, sender, isGroupChat, replier, imageDB, packageName){
if(채팅수[sender]==undefined){
채팅수[sender]=0;
} else {
채팅수[sender]++;
}
if(msg=="/채팅수"){
replier.reply(sender+"님의 채팅수 : "+채팅수[sender]);
}
} 이거 써보세요
컴터 할수있기 전까지는 메신저봇 강좌ㄹ(?)
/채팅수를 말고 다른 챗을 쳐도 채팅수 표시가 뜨는데 정상인거죠?
아무 채팅이나 쳐도 채팅수를 보여준다는 말인가요?
고쳐졌네요 감사합니다
var 채팅수 = {};
function response(room, msg, sender, isGroupChat, replier, imageDB, packageName) {
if (채팅수[sender]==1){
채팅수[sender]=1;
}else{
채팅수[sender]++;
}
if(msg=="/채팅수"){
replier.reply(sender+"님의 채팅수:"+채팅수[sender]);
}
}
NAN 이라떠요
채팅순위식으로 뜨게하는거 저도 소스 받고 싶은데 지금 될라나 모르겠네요
요즘 카톡봇 만들고 있었는데
덕분에 좋은 기능을 추가 할수있겠네요 감사합니다
채널순위 를 하고 싶어서
아래 댓글에있는 코딩을 그대로 복붙해서 사용해봤는데
채팅수는 표시가 잘되지만
채팅순위 를 할때 채팅순위 라고 치는분만 나오더군요
예시)
a는 10번채팅
b는 5번채팅
했다고치면
올바르게 나와야하는 값
1위🥇 a 10
2위🥈 b 5
이렇게 나와야하는데
a 채팅순위
🥇| a 10
b 채팅순위
🥇| b 5
이렇게 채팅 순위 친 사람 만 인식돼서
이런문제는 어떻게 해결해야할까요?
var fs = FileStream;
const path = "sdcard/채팅수/저장파일.txt";
fs.read(path) || fs.write(path, "{}");
var json = JSON.parse(fs.read(path));
const Lw='\u200b'.repeat(500);
function responseFix(room, msg, sender, isGroupChat, replier, imageDB, packageName) {
if(sender.includes('\u202E').valueOf()) sender.replace(/\\u202e/gi, '').split('').reverse().join('');
if(!json[room]) json[room]={};
if(!json[room][sender]) json[room][sender]=0;
json[room][sender]++;
if(msg=="채팅수"){
replier.reply(sender+"님의 채팅수 : "+json[room][sender]);
}
if(msg=="채팅순위"){
list=[];
for(i in json[room]) list.push(i+' (채팅수 : '+json[room][i]+')');
replier.reply('채팅순위'+Lw+'
'+list.sort((a,b)=>b.split(' (채팅수 : ')[1].split(')')[0]-a.split(' (채팅수 : ')[1].split(')')[0]).map(e=> (list.indexOf(e)+1)+'위ㅣ'+e).join('
').replace("1위","🥇").replace("2위","🥈").replace("3위","🥉"));
}
fs.write(path, JSON.stringify(json));
}
function onNotificationPosted(sbn, sm) {
var packageName = sbn.getPackageName();
if (!packageName.startsWith("com.kakao.tal")) return;
var actions = sbn.getNotification().actions;
if (actions == null) return;
var userId = sbn.getUser().hashCode();
for (var n = 0; n < actions.length; n++) {
var action = actions[n];
if (action.getRemoteInputs() == null) continue;
var bundle = sbn.getNotification().extras;
var msg = bundle.get("android.text").toString();
var sender = bundle.getString("android.title");
var room = bundle.getString("android.subText");
if (room == null) room = bundle.getString("android.summaryText");
var isGroupChat = room != null;
if (room == null) room = sender;
var replier = new com.xfl.msgbot.script.api.legacy.SessionCacheReplier(packageName, action, room, false, "");
var icon = bundle.getParcelableArray("android.messages")[0].get("sender_person").getIcon().getBitmap();
var image = bundle.getBundle("android.wearable.EXTENSIONS");
if (image != null) image = image.getParcelable("background");
var imageDB = new com.xfl.msgbot.script.api.legacy.ImageDB(icon, image);
com.xfl.msgbot.application.service.NotificationListener.Companion.setSession(packageName, room, action);
if (this.hasOwnProperty("responseFix")) {
responseFix(room, msg, sender, isGroupChat, replier, imageDB, packageName, userId != 0);
}
}
}
이거 쓰셔보세요
빠른답변 감사합니다
@@wne130해봤는데 여전히 예시처럼 나오네요😂
영상 올라 왔다
다른채팅을 치면 채팅수가 안오르는데요...
쓰신거 보여주세요
@@wne130 어라
@@wne130 걍 챗방에 뿌릴게요 간단한거니까
채팅수가 NaN으로 떠요
그 채팅수 할때 2개씩 나가는데 어떻해야하죠??
옾픈채팅방 링크좀요
Nan 이라고 떠요 ㅠ
전체 코드좀 보내주세요
채팅순위만 소스 알려줄 수 있나요?
var fs = FileStream;
const path = "sdcard/채팅수/저장파일.txt";
fs.read(path) || fs.write(path, "{}");
var json = JSON.parse(fs.read(path));
const Lw='\u200b'.repeat(500);
function responseFix(room, msg, sender, isGroupChat, replier, imageDB, packageName) {
if(sender.includes('\u202E').valueOf()) sender.replace(/\\u202e/gi, '').split('').reverse().join('');
if(!json[room]) json[room]={};
if(!json[room][sender]) json[room][sender]=0;
json[room][sender]++;
if(msg=="채팅수"){
replier.reply(sender+"님의 채팅수 : "+json[room][sender]);
}
if(msg=="채팅순위"){
list=[];
for(i in json[room]) list.push(i+' (채팅수 : '+json[room][i]+')');
replier.reply('채팅순위'+Lw+'
'+list.sort((a,b)=>b.split(' (채팅수 : ')[1].split(')')[0]-a.split(' (채팅수 : ')[1].split(')')[0]).map(e=> (list.indexOf(e)+1)+'위ㅣ'+e).join('
').replace("1위","🥇").replace("2위","🥈").replace("3위","🥉"));
}
fs.write(path, JSON.stringify(json));
}
function onNotificationPosted(sbn, sm) {
var packageName = sbn.getPackageName();
if (!packageName.startsWith("com.kakao.tal")) return;
var actions = sbn.getNotification().actions;
if (actions == null) return;
var userId = sbn.getUser().hashCode();
for (var n = 0; n < actions.length; n++) {
var action = actions[n];
if (action.getRemoteInputs() == null) continue;
var bundle = sbn.getNotification().extras;
var msg = bundle.get("android.text").toString();
var sender = bundle.getString("android.title");
var room = bundle.getString("android.subText");
if (room == null) room = bundle.getString("android.summaryText");
var isGroupChat = room != null;
if (room == null) room = sender;
var replier = new com.xfl.msgbot.script.api.legacy.SessionCacheReplier(packageName, action, room, false, "");
var icon = bundle.getParcelableArray("android.messages")[0].get("sender_person").getIcon().getBitmap();
var image = bundle.getBundle("android.wearable.EXTENSIONS");
if (image != null) image = image.getParcelable("background");
var imageDB = new com.xfl.msgbot.script.api.legacy.ImageDB(icon, image);
com.xfl.msgbot.application.service.NotificationListener.Companion.setSession(packageName, room, action);
if (this.hasOwnProperty("responseFix")) {
responseFix(room, msg, sender, isGroupChat, replier, imageDB, packageName, userId != 0);
}
}
}
@@wne130 list.sort((a,b)=>b.split에 a가 안된다고 떠요 ㅜ
@@byeongtyu324 무시하셔도 됩니다
@@wne130소스 복사하고싶은데 안되는데 가능하려면 어떻게해야할까요 영상잘봤습니다
ㄷㄷ@@wne130
나 강신욱
작동이 안돼요 어떻게해요?
어디서 작동이 안 되나요
@@wne130 재미난형제님이 특정 채팅방에서만 되게 하려면 뭐시기뭐시기 return; 하시라고 해서 채팅방 이름 복사해서 붙여넣어서 function response 뭐시기 바로 밑에 스크립트 적었는데 그 뒤로 작동이 안돼요
전체 소스를 복사해주세요@@CmaSnowman
채팅순위 명령어를 어디에 넣어야 하나요?
다른 코드에 넣으실건가요??
@@wne130 아녀 영상에 나온 코드에 넣으려는데 어떻게하나요?
채팅순위 명령어 코드있으신가요?
@@wne130 아녀;
@@개구리-f3p1b 근데 어떻게 넣으실려고;; 그냥 코드 드릴까요?
안돼는데요 어떡하죠 ㅠ
어떻게 적으셨나요
런타임 오류가 뭐죠
나야
형
채팅 순위 어떻게 해야 할까요
갠톡 오세요 댓글보면은 제가 갠톡 링크 단 댓글있을 겁니다
채팅 순위 만드는법 공유가능한가요?
네
var fs = FileStream;
const path = "sdcard/채팅수/저장파일.txt";
fs.read(path) || fs.write(path, "{}");
var json = JSON.parse(fs.read(path));
const Lw='\u200b'.repeat(500);
function response(room, msg, sender, isGroupChat, replier, imageDB, packageName) {
if(sender.includes('\u202E').valueOf()) sender.replace(/\\u202e/gi, '').split('').reverse().join('');
if(!json[room]) json[room]={};
if(!json[room][sender]) json[room][sender]=0;
json[room][sender]++;
if(msg=="채팅수"){
replier.reply(sender+"님의 채팅수 : "+json[room][sender]);
}
if(msg=="채팅순위"){
list=[];
for(i in json[room]) list.push(i+' (채팅수 : '+json[room][i]+')');
replier.reply('채팅순위'+Lw+'
'+list.sort((a,b)=>b.split(' (채팅수 : ')[1].split(')')[0]-a.split(' (채팅수 : ')[1].split(')')[0]).map(e=> (list.indexOf(e)+1)+'위ㅣ'+e).join('
').replace("1위","🥇").replace("2위","🥈").replace("3위","🥉"));
}
fs.write(path, JSON.stringify(json));
}
채팅순위를 만들고 싶은데 어떻게 하면 되나요?(전체보기 포함)
open.kakao.com/me/wne130 갠톡 오시면 제가 소스 드리도록하죠
@@wne130일대일 오픈챗 안들어가지네요 ㅠ 여럿 여쭤보고싶은데
@@wne130소스정보 없을까요ㅠ