ফিল্টা কুইলা এবং কিছু জাভাস্ক্রিপ্ট ক্রিয়া / নিয়ম সহ এটি করণীয়। যাইহোক, এখানে ফিল্টা কুইলা উত্সটিতে কিছু সংশোধন করার উদাহরণ রয়েছে যাতে প্রক্রিয়াটি সহজ করা যায়।
এখানে উদাহরণস্বরূপ ফিল্টারিংয়ের তিনটি ধাপ করবে: চিহ্নিত করা - যা কেবলমাত্র ইমেলগুলিকে শ্রেণিবদ্ধ করে। তারপরে, সংশোধন করা - যা কিছু যৌক্তিক গণনা করে এবং ইমেল বিষয় বা শিরোনামকে সংশোধন করে। এবং, ক্রিয়া - আসল ক্রিয়া করছে। প্রতিটি পর্যায়ে থান্ডারবার্ড ফিল্টার ডায়ালগটিতে সাধারণত ফিল্টার সম্পাদনা করা জড়িত তবে ফিল্টা কুইলা দ্বারা যুক্ত বিকল্পগুলির সাথে। মঞ্চ 1 এবং 2 একটি নতুন যুক্ত হওয়া ইমেল শিরোলেখের ক্ষেত্রগুলিতে তাদের ফলাফলগুলি সংরক্ষণ করে এবং 2 এবং 3 পর্যায়ে ফলাফলগুলি সাধারণ ক্রিয়াগুলির আগে কিছু যুক্তি করার জন্য ব্যবহার করে।
পদক্ষেপ:
ফিল্টা কুইলা ইনস্টল করুন
দেখে মনে হচ্ছে অনেকগুলি ফাংশন কেবল থান্ডারবার্ড ৩.১ এর সাথে কাজ করছে। এভাবে প্রথমে টিবি ৩.১ এ উন্নীত করুন। তারপরে ফিল্টা কুইলা ইনস্টল করুন।
ফিল্টা কুইলা পছন্দ ট্যাবে, "সাবজেক্ট থেকে সাবজিক্স" এবং "জাভাস্ক্রিপ্ট অ্যাকশন" সক্ষম করুন।
ফিল্টা কুইলা উত্সটি সংশোধন করুন
এক্সটেনশন ডিরেক্টরিতে "filtaquilla@mesquilla.com/content/filtaquilla.js" সম্পাদনা করুন যাতে এটি এর মতো দেখায়:
// Suffix to subject
self.subjectSuffix =
{
...
apply: function(aMsgHdrs, aActionValue, aListener, aType, aMsgWindow)
{
for (var i = 0; i < aMsgHdrs.length; i++)
{
var msgHdr = aMsgHdrs.queryElementAt(i, Ci.nsIMsgDBHdr);
////var appSubject = _mimeAppend(aActionValue, msgHdr.subject, false);
////msgHdr.subject = appSubject;
var headerName = "mykeywords";
var headerValue = msgHdr.getStringProperty(headerName);
msgHdr.setStringProperty(headerName, headerValue + " " + aActionValue);
headerValue = msgHdr.getStringProperty(headerName);
// Cu.reportError("chg : " + headerName + " : " + headerValue);
}
},
কোডটি "প্রত্যয়কে সাবজেক্টে" এর মূল ক্রিয়াকে পরিবর্তিত করে যে এটি প্রত্যয়যুক্ত স্ট্রিংগুলিকে "মাইকিওয়ার্ডস" নামের নতুন শিরোনামে যুক্ত করবে। এই নতুন শিরোলেখ ক্ষেত্রটি স্ট্রিং শব্দের আকারে ফিল্টারিংয়ের প্রথম দুটি পর্যায়ে থেকে ফলাফল রাখতে ব্যবহার করা হবে।
এই উত্স কোড পরিবর্তনটি "প্রত্যয়" ক্রিয়াটি পুনরায় ব্যবহার করা হয় যেহেতু সাধারণত কোনও বিষয়ের প্রত্যয়টি খুব দরকারী নয়। সুতরাং এর অভ্যন্তরীণ সাহস পুনরায় ব্যবহার করা ফিল্টা কুইলার ব্যবহারের খুব বেশি প্রভাব ফেলবে না। যদি এটি না করা হয় তবে আপনি যে বৈশিষ্ট্যটি চান তা যুক্ত করতে একটি অফিশিয়াল ফিচার অনুরোধ ফিল্টা কুইল্লা স্রষ্টাকে পোস্ট করা উচিত, বা আপনাকে জাভাস্কিপ্ট শর্ত হিসাবে ফিল্টার অবস্থায় আরও কিছুটা জাভাস্ক্রিপ্ট কোড লিখতে হবে।
চিহ্নিত করার জন্য ফিল্টার বিধি তৈরি করুন
একটি উদাহরণ রয়েছে প্রতিটি নিয়মের একটি সিরিজ তৈরি করার জন্য কেবল একটি ক্রিয়া থাকবে: "প্রত্যয় থেকে সাবজেক্ট", তবে প্রত্যয়যুক্ত শব্দের প্রতিটি তার ফলাফল কী পেয়েছে তা সনাক্ত করবে। উদাহরণস্বরূপ, ইমেলগুলি "সংস্থাগুলি-এ", "সংস্থা-বি", ... ইত্যাদি শব্দগুলির দ্বারা প্রত্যাহার করে যেখানে সেগুলি অনুসারে শ্রেণিবদ্ধ করুন মনে রাখবেন যে এই শব্দগুলি "সংস্থা-এ", "সংস্থা-বি", ইত্যাদি ব্যবহার করে ।, "মাইকিওয়ার্ডস" শিরোলেখ ক্ষেত্রের সাথে সংযুক্ত করা হবে।
ফিল্টার নিয়মের তালিকার শুরুতে এই নিয়মগুলি রাখুন।
যৌক্তিক পরিবর্তনের জন্য ফিল্টার বিধি তৈরি করুন
ফিল্টার নিয়মের শিরোনাম-ক্ষেত্রের ড্রপ বাক্সে, "মাইকিওয়ার্ডস" তালিকায় যুক্ত করতে "কাস্টমাইজ করুন" ব্যবহার করুন। তারপরে ফিল্টার সংলাপের শর্তের জন্য "মাইকিওয়ার্ডস সংস্থাগুলি" নির্বাচন করুন।
ক্রিয়া বিভাগে "জাভাস্ক্রিপ্ট অ্যাকশন" চয়ন করুন। এর মতো কিছু কোড যুক্ত করুন:
for (let index = 0; index < msgHdrs.length; index++)
{
let hdr = msgHdrs.queryElementAt(index, Ci.nsIMsgDBHdr);
let s = hdr.getStringProperty("mykeywords");
let v = s.split("company-"); /* result words are in v[] now */
let r = ""; /* logic conversion result */
let cnt = 0;
if ( v != undefined && v.length != undefined && v.length > 0) {
let lastVN = 0;
for(var i=v.length -1; i>=0; i--) {
let ss = v[i];
if ( ss.length > 1 ) {
ss = ss.substring(0);
/* convert company A into VIP, B into NORMAL, C into IGNORE.
* Assume the marking section starts with A,B, then C thus
* C gets parsed first, then A and B.
*/
if (ss.search(/A/) == 0) { ss = "V"; lastVN = 1; } /*VIP*/
else if (ss.search(/B/) == 0 ) { ss = "N"; lastVN = 1; } /*NORMAL*/
else if (ss.search(/C/) == 0 ) { ss = "IGNORE"; }
/* prepend subject line */
if ( cnt == 0 ) { r = ss + "] ";
} else { if (lastVN == 0) r = ss + " " + r; else r = ss + r; }
cnt ++;
}
} /* for(var i=v.length -1; */
if ( cnt > 0 ) { r = "[" + r; }
} /* if ( v != undefined && */
hdr.subject = r + hdr.subject;
} /* for (let index = 0; */
এই মুহুর্তে, সমস্ত চিহ্নিতকরণের ফলাফলগুলি "মাইকিওয়ার্ডস" শিরোনাম ক্ষেত্র থেকে স্ক্রিপ্ট দ্বারা অ্যাক্সেস করা যায়। কেবল স্ট্রিংকে বিশ্লেষণ করুন, তারপরে আপনার পছন্দসই যুক্তির ফলাফলটি পার্সিংয়ের পরে কোনও যুক্তি প্রয়োগ করা যেতে পারে। উদাহরণস্বরূপ, আপনি "এ" এবং "বি" প্রয়োগ করতে পারেন, "মাইকিওয়ার্ডস" ইত্যাদিতে "ফলাফল-এবি" যুক্ত করতে পারেন, তারপরে পরবর্তী পর্যায়ে "মাইকিওয়ার্ডগুলিতে রেজাল্ট-এবি" রয়েছে তা পরীক্ষা করার জন্য "এ এবং বি" এর প্রকৃত অর্থ রয়েছে "।
উপরের উদাহরণটি আরও দেখায় যে "[VN IGNORE]" সাবজেক্ট লাইনে চাপ দেওয়া যেতে পারে তা বোঝাতে তিনটি সংস্থার মধ্যে কোনটি ইমেইল ইমেইলে জড়িত ছিল।
কর্মের জন্য ফিল্টার বিধি তৈরি করুন
এখন "মাইকিওয়ার্ডস" এর মধ্যে থাকা মানগুলির ভিত্তিতে অ্যাকশন বিধি তৈরি করুন। এটি কেবলমাত্র সাধারণ সেটিংস হবে।
মন্তব্য:
ফিল্টা কুইলা শর্ত বিভাগে জাভাস্ক্রিপ্ট সমর্থন করে। সুতরাং আপনি যদি এক্সটেনশন উত্স কোডটি পরিবর্তন করতে না চান তবে ফিল্টার সংলাপের শর্ত বিভাগে আপনাকে আরও কিছু কোড লিখতে হবে। সেই কোড দিয়ে যে কোনও যুক্তি গণনাও করা যায়।
আরও অনেক তথ্যের জন্য ফিল্টা কুইলা সাইটটি দেখুন।