PDA

View Full Version : درخواست ساخت افزونه برای مرورگر



sajjad_tanha20
دوشنبه 09 دی 1392, 05:22 صبح
با سلام خدمت دوستان و استادان عزیز
من یه نرم افزار مدیریت دانلود ساختم که از اینجا (http://sddl.persianblog.ir/)میتونین دانلودش کنین ، همه چیز خوب کار میکنه ولی یه مشکلی هست اونم اینه که نمیتونم تو مرورگرها دانلودها رو دریافت کنم (مثل کاری که IDM در هنگام کلیک روی لینک دانلود یا در هنگام پخش فیلم آنلاین انجام میده )
به همین دلیل فعلا مجبور شدم از افزونه Flashgot برای مرورگر فایرفاکس استفاده کنم که اون پلاگین هم در وبلاگ نرم افزار موجود هست .
میخواستم اگه امکانش هست یکی یه افزونه برای مرورگرها ( حالا هرکدوم که بشه ) درست کنه و یا اینکه افزونه Flashgot رو ادیت کنه ( من فقط تونستم عکساشو عوض کنم :لبخند: چون جاوا اسکریپت بلد نیستم )
این افزونه 3 تا خاصیت " لینک " و " نام فایل " و " آدرس صفحه ای که لینک دانلود در اون هست ( Referer ) " رو با استفاده از startup arg به نرم افزار انتقال بده یعنی مثلا اینطوری :

C:\Program Files\SD Download Manager\SD_Download_Manager.exe http://uploadkon.ir/?file=Setup-SD%20Download%20Manager_1.rar SD Download Manager.exe sddl.persianblog.ir/post/7/که فرمولش هم اینطوری میشه :

Application address - space - URL - space - File name - space - Refererشرمنده اینجوری توضیح دادم آخه ترتیبشون خیلی مهمه چون تو نرم افزارم ترتیبشونو اینطوری نوشتم :قلب:

sajjad_tanha20
دوشنبه 09 دی 1392, 22:02 عصر
حداقل یه بنده خدایی بگه تو جاوا اسکریپت با چه کدی میشه لینک دانلود رو از مرورگر گرفت ؟:افسرده:

sajjad_tanha20
سه شنبه 10 دی 1392, 16:54 عصر
ها راستی اگه کسی بتونه بسازتش اسمش تو قسمت سازندگان نرم افزار ذکر میشه یا اگه نرم افزار به پولی تبدیل شد میتونه درصد خودشو داشته باشه ، در ضمن UP

Jofahu
سه شنبه 10 دی 1392, 22:18 عصر
Please refer below URLs :
http://stackoverflow.com/questions/3749231/download-file-using-javascript-jquery
http://www.codeproject.com/Articles/55488/File-Download-Using-JavaScript
http://forums.asp.net/t/1789137.aspx/1

دوست عزیز لطفا دفعه بعدی از کلمه جاوا اسکریپت ( یا جی اس ) به جای جاوا استفاده کنید تا دوستانی که تازه وارد فروم شدند (بنده) با زبان برنامه نویسی جاوا اشتباه نگیرند !
موفق باشید

sajjad_tanha20
چهارشنبه 11 دی 1392, 13:16 عصر
ممنون از پاسختون ، بابت اشتباهم عذر میخوام ، پست ها اصلاح شدن

Saeed.MD
پنج شنبه 12 دی 1392, 02:20 صبح
برنامه تون خیلی خوب شده مخصوصا اینکه کش میکنه (احتمالا رو رم ؟) چون ای.دی.ام هر بایتی رو که میگیره مینویسه رو هارد و هارد دایما درگیره
ولی GUI خیلی شبیه آی.دی.ام شده :دی
-----------------------------------------------------------------------------------------------
طبق جستو جو هایی که قبلا (:دی) داشتم فهمیدم به خاطر دلایل امنیتی نه فقط جاوا اسکریپت بلکه اکثر اسکریپت های WEB نمیتونن دستوری یا اپلیکیشنی رو خودشون ران یا لانچ کنن
چون اگه همچین چیزی بود مثلا من یه سایتی میساختم که شما که واردش بشی فلان برنامه اجرا بشه و کاری رو که من میخوام بکنه (تخریب یا دزدی یا ....) ، پس قضیه اکستنشن برای مرورگر با جاوا اسکریپت نمیشه حل کرد
اکستنشن ها میتونن اسکریپت داشته باشن ولی عموما با اسکریپت کار نمیکنن ! (یه ActiveX هست که که با اسکریپت میشه صداش زد و اون هم برنامه رو صدا بزنه اما فقط با IE کار میکنه که خیلی مسخرس)
منم اگر طبیب بودم اکستنشن Axel رو کامل میکردم اما متاسفانه به دلیل عدم انگیزه کافی اون رو رها کردم و هنوز دستی توی ترمینال تایپ میکنم!!
-----------------------------------------------------------------------------------------------------------------
Application address - space - URL - space - File name - space - Referer

اپلیکیشن آدرس که یک مقدار ثابت داره یو‌آر‌ال و رفرر رو هم که از سایت میگیریم میمونه اسم فایل
که یوزر باید خودش بنویسه ؟
یعنی بعد از اینکه یوزر کلیک کرد یه پنجره جدید باید باز شه و اسم بخواد که کارو پیچیده تر میکنه ،
نمیدونم، شاید شما دلیل خوبی داشته باشید که این پارامتر رو اضافه کردید(؟)

به هر حال ساختن یه جمله مثل این ساده هست

App.path+" "+URL+" "+File name+" "+Referer
اما طریقه اجرا کردنش رو نمیدونم.. ولی اگه پیدا کردم حتما اطلاع میدم

ویرایش: اجرا کردن یک برنامه یا دستور توسط nsIProcess انجام میشه :
https://developer.mozilla.org/en-US/docs/XPCOM_Interface_Reference/nsIProcess

sajjad_tanha20
پنج شنبه 12 دی 1392, 14:21 عصر
آره دادا اول رو رم مینویسه اطلاعات رو و سپس رو هارد ، از لحاظ ظاهر هم چون آی دی ام نرم افزاریه که اکثر ایرانی ها ازش استفاده میکنن و طرز کارشو بلدن منم نرم افزار رو مثل اون ساختم تا کار کردن باهاش راحت باشه
__________________________________________________ ________________________
اسم فایل رو هم پیدا نکنه مشکلی نیست چون نرم افزار خودش اسمشو پیدا میکنه
خیلی ممنون از راهنماییت دادا ، اینایی که گفتی رو نمیدونستم ، مرسی که یادم دادی و ممنون تر میشم اگه روش گرفتن لینک دانلود رو هم بهم بگی ، الان خودم گرفتن referer و نام فایل رو پیدا کردم که خیلی هم آسونه و کلا 5 - 6 خط کده ولی گرفتن لینک دانلود و همچنین غیرفعال کردن دانلودر خود مرورگر رو نمیدونم چطور باید انجام بدم

sajjad_tanha20
پنج شنبه 12 دی 1392, 14:24 عصر
راستی دادا نظرت در مورد ویرایش افزونه FlashGot چیه ؟ میتونی دانلودرهای دیگه رو ازش حذف کنی و این دانلودر رو به صورت پیش فرض بهش اضافه کنی ؟ به نظرم این خیلی آسونتر و بهتره

Saeed.MD
جمعه 13 دی 1392, 23:13 عصر
لطفا "این پست" حذف شود.

sajjad_tanha20
شنبه 14 دی 1392, 17:51 عصر
لطفا حذف شود.
چی حذف شود ؟ این تاپیک ؟ چرا دادا مشکلش چیه ؟ تازه میخواستم کدشم بذارم که اونایی که مثل من دارن دنبالش میگردن هم بتونن به نتیجه ای برسن و هزارتا سورس و سایت خارجی رو نگردن

sajjad_tanha20
شنبه 14 دی 1392, 17:54 عصر
راستی قابل توجه دوستانی که دنبال کد ساخت همچین افزونه ای برای موزیلا فایرفاکس میگردن ، بالاخره با کمک دوست عزیزم Saeed.MD (http://barnamenevis.org/member.php?158580-Saeed.MD) تونستم افزونه رو بسازم ، اینم از کدش :

var cm = require("sdk/context-menu");
var self = require("sdk/self");
let {Cc, Ci} = require("chrome");
var sh = 1;
var xmlhttp=false;
var launch = 'self.on("click", function (node, data) { '+
' var a=node.href;' +
' var b=node.href.substring(node.href.lastIndexOf("/")+1).replace(/%20/ig, " ").replace(/%5D/ig, "]").replace(/%5B/ig, "[").replace(/%28/ig, "(").replace(/%29/ig, ")").replace(/[?|+]/ig, " ").replace(/[$|#|@|%]/ig, "");' +
' var c=document.URL;' +
' self.postMessage(a+ "#"+ b+ "#"+ c);' +
' });';


exports.main = function() {
cm.Item({
label: "Download with SD",
context: cm.SelectorContext("a"),
image: self.data.url("axeld.png"),
contentScript: launch,
onMessage: function (natije) {
var mArray = natije.split("#");
openapp(mArray[0],mArray[1], mArray[2]);
}
});
function openapp(ar, br, cr) {
var file = Cc["@mozilla.org/file/local;1"].createInstance(Ci.nsIFile);
file.initWithPath("C:\\Users\\Sajjad Tanha\\Desktop\\SDDler\\SDDler\\SDDler\\bin\\Debug \\SD_Download_Manager.exe");
var process = Cc["@mozilla.org/process/util;1"].createInstance(Ci.nsIProcess);
process.init(file);
var args = [ar, br, cr];
process.run(false, args, args.length);
};
};




امیدوارم مفید واقع بشه ، فقط به جای کد "C:\\Users\\Sajjad Tanha\\Desktop\\SDDler\\SDDler\\SDDler\\bin\\Debug \\SD_Download_Manager.exe" آدرس نرم افزاری که میخوایین اجرا بشه رو قرار میدین

sajjad_tanha20
شنبه 21 دی 1392, 22:15 عصر
دوستان کسی راه حلی پیدا نکرد ؟ حداقل مثل Flashgot عمل کنه و اطلاعات دانلود رو از صفحه دانلود(همون که save یا open میپرسه) بگیره و صفحه دانلود رو ببنده ، لطفا اگه کسی در مورد این هم چیزی میدونه کمک کنه :افسرده:
ممنون :قلب:

sajjad_tanha20
شنبه 28 دی 1392, 20:54 عصر
دوستان همه کارارو حل کردم فقط الان بعد از اینکه لینک رو نرم افزار میفرسته پنجره open یا save برای دانلود باز میمونه ، چطوری میتونم این پنجره رو ببندم ؟ انواع دستور مثل close و ... رو امتحان کردم ولی جواب نمیده نمیدونم چرا ، لطفا کمک کنین plssss