انجمنهای فارسی اوبونتو
کمک و پشتیبانی => برنامهسازی => نویسنده: rezass در 11 آذر 1389، 06:59 بظ
-
من الان برای دانلود مجبورم از ویندوز مجازی استفاده کنم ](*,)
چون دانلود منیجر های لینوکس هیچ کدوم اون چیزی که من میخوام نیستن ولی میخوام یه سری امکاناتی که لازم دارم رو خودم به axel اضافه کنم
۱)یه فایل داشته باشم لینک ها توش ذخیره بشه و با یه دستور لینک اضافه و کم بشه کرد(اینش مشکلی نیست)
۲)برنامه باید مثلا خط اول فایل رو بخونه و دستوری رو اجرا کنه که اکسل اون فایل رو دانلود کنه ولی مشکل اینه که اگه مثلا اینترنت وسط کار قطع بشه اکسل خطا میره و میاد بیرون ولی من میخوام کاری کنم اکه اکسل خطا داد برنامم دوباره اون رو با همین لینک قبلی اجرا کنه تا بالاخره دانلود بشه بعدش بره سرا دانلود بعدی
۳)میخوام بتونم مثلا بگم ۲ تا فایل رو همزمان بگیره
۴)اگه بشه سرعت دانلود حجم فایل و زمان باقیمانده رو هم از خروجی اکسل بگیرم!
چون کلا با سی++ بیشتر کار کردم میخوام با این زبون بنویسم ولی مشکلم اینه که نمیدونم چطوری باید برای مرحله ۲ دستور رو اجرا کنم و خروجیش رو بررسی کنم مورد ۳ رو با fork میتونم بنویسم ولی مورد ۴ رو نمیدونم چیکارش کنم
اگه کسی میتونه کمکم کنه ممنون میشم
-
به نظرم اگر یک اسکریپت بنویسی بهتر است.
-
به نظرم اگر یک اسکریپت بنویسی بهتر است.
میشه یه راهنمایی بکنین از کجا شروع کنم؟
-
شما دو راه برای انجام این کار دارید:
* کد خود Axel را تغییر دهید:
من نگاهی به کد axel انداختم. به نظر برنامه نسبتا کوچکی و بدون وابستگی است. با توجه به این موضوع تغییر آن نباید کار دشواری باشد و فکر می کنم بتوان ویژگی هایی که می خواهید را به آن اضافه کنید. اگر تصمیم به انجام این کار داشتید بهتر است از فایلی که اینترفیس خط فرمان برنامه را پیاده سازی می کند شروع کنید. به این ترتیب می توان اغلب با حداقل کار به نتیجه مورد نظر رسید زیرا توابع مورد استفاده در این فایل معمولا در بالاترین سطح انتزاع قرار دارند. در ضمن نیازی به استفاده از ++C نیز نیست و بهتر است از C برای برنامه نویسی استفاده کنید.
* با استفاده از اسکریپت نویسی یک Wrapper برای Axel درست کنید:
با این کار شما خود برنامه را تغییر نمی دهید و فقط سعی می کنید با اسکریپت ها آن را مدیریت کنید . اگر تجربه زیادی در برنامه نویسی ندارید و یا می خواهید به سرعت به نتیجه برسید از این راه می توان استفاده کرد. شما می بایست با مدیریت ورودی های axel و همچنین تفسیر خروجی آن ویژگی های مورد نظر را پیاده کنید.
من شخصا فکر می کنم اگر قصد دارید تا کاری موثر انجام دهید با توجه به اینکه برنامه نیز زیاد پیچیده به نظر نمی رسد ، تغییر و بهبود خود Axel گزینه مناسب تری باشد.
موفق باشید
-
من پیشنهای میکنم اگه با زبان جاوا آشنایی دارین واسه aria2c یه gui خوب بنویسیم مثل IDM که مشکل همه لینوکس کارا با این دانلود منیجر حل شه اگه کسی مایل بود این کارو انجام بده همین جا اعلام کنه تا بتونیم با همکاری هم یه دانلود منیجر خوب واسه لینوکس بنویسیم.
به امید یاری شما دوستان عزیز
-
یک پیشنهاد دارم که شاید جالب باشد:
با توجه به تجربه شخصی گاهی axel گاهی aria2c و گاهی wget بهترین کارایی را دارند.
اگر بتوان یک GUI یا script نوشت که ابتدا کارایی هریک از این برنامه ها را تست کند و بعد شروع به دانلود با بهترین نرم افزار کند خیلی مشکل گشا خواهد بود.
-
من پیشنهای میکنم اگه با زبان جاوا آشنایی دارین واسه aria2c یه gui خوب بنویسیم مثل IDM که مشکل همه لینوکس کارا با این دانلود منیجر حل شه اگه کسی مایل بود این کارو انجام بده همین جا اعلام کنه تا بتونیم با همکاری هم یه دانلود منیجر خوب واسه لینوکس بنویسیم.
به امید یاری شما دوستان عزیز
متاسفانه من جاوا بلد نیستم :(
شما دو راه برای انجام این کار دارید:
* کد خود Axel را تغییر دهید:
من نگاهی به کد axel انداختم. به نظر برنامه نسبتا کوچکی و بدون وابستگی است. با توجه به این موضوع تغییر آن نباید کار دشواری باشد و فکر می کنم بتوان ویژگی هایی که می خواهید را به آن اضافه کنید. اگر تصمیم به انجام این کار داشتید بهتر است از فایلی که اینترفیس خط فرمان برنامه را پیاده سازی می کند شروع کنید. به این ترتیب می توان اغلب با حداقل کار به نتیجه مورد نظر رسید زیرا توابع مورد استفاده در این فایل معمولا در بالاترین سطح انتزاع قرار دارند. در ضمن نیازی به استفاده از ++C نیز نیست و بهتر است از C برای برنامه نویسی استفاده کنید.
* با استفاده از اسکریپت نویسی یک Wrapper برای Axel درست کنید:
با این کار شما خود برنامه را تغییر نمی دهید و فقط سعی می کنید با اسکریپت ها آن را مدیریت کنید . اگر تجربه زیادی در برنامه نویسی ندارید و یا می خواهید به سرعت به نتیجه برسید از این راه می توان استفاده کرد. شما می بایست با مدیریت ورودی های axel و همچنین تفسیر خروجی آن ویژگی های مورد نظر را پیاده کنید.
من شخصا فکر می کنم اگر قصد دارید تا کاری موثر انجام دهید با توجه به اینکه برنامه نیز زیاد پیچیده به نظر نمی رسد ، تغییر و بهبود خود Axel گزینه مناسب تری باشد.
موفق باشید
در مورد کد اکسل یه نگاهی بهش کردم و فکر کنم بشه کد خودش رو تغییر داد.
چون از اسکریپت نویسی چیزی سر در نمیارم فکر کنم همون کد خودش رو تغییر بدم بهتره.
باید برم کدش رو دوباره دقیق بخونم
-
من پیشنهای میکنم اگه با زبان جاوا آشنایی دارین واسه aria2c یه gui خوب بنویسیم مثل IDM که مشکل همه لینوکس کارا با این دانلود منیجر حل شه اگه کسی مایل بود این کارو انجام بده همین جا اعلام کنه تا بتونیم با همکاری هم یه دانلود منیجر خوب واسه لینوکس بنویسیم.
به امید یاری شما دوستان عزیز
ایده خوبی می باشد اما برنامه aria2 با ++C نوشته شده است و نوشتن GUI با جاوا دردسرهای زیادی ممکن است ایجاد کند. شاید Qt گزینه مناسب تری باشد.
-
این برنامه یکی دو تا GUI داره و یه رابط قوی هم به صورت XMLRpc داره که میتونه برای کنترلش استفاده بشه.
به هر حال ایده بدی نیست.
من یه کنترلر نصفه نیمه با PHP براش ایجاد کردم. (رابط وب) برای اینکه توی سرورم بتونم باهاش دانلود کنم. ولی زیاد جالب نشد وقت کافی هم برای تکمیلش ندارم.
-
ایده خوبی می باشد اما برنامه aria2 با ++C نوشته شده است و نوشتن GUI با جاوا دردسرهای زیادی ممکن است ایجاد کند. شاید Qt گزینه مناسب تری باشد.
بوسیله ی XML RPC میشه با بیشتر زبان ها واسش رابط کاربری ایجاد کرد.
حالا از دوستانی که جاوا کار هستن اگه مایل بودن با هم روش کار میکنیم
این هم نمونه کدی که از xml rpc بوسیله ی پایتون استفاده شده .
Python 2.5.4 (r254:67916, Nov 19 2009, 22:14:20)
[GCC 4.3.4] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import xmlrpclib
>>> s = xmlrpclib.ServerProxy('http://localhost:6800/rpc')
>>> s.aria2.addUri(['http://chromeos.hexxeh.net/ChromeOS-Zero.torrent'],{'dir':'/mydownloads'})
'3'
>>> from pprint import pprint
>>> pprint(s.aria2.tellActive())
[{'bitfield': '00000300002000020000002002000000000004400004000048000002002108000420101100000000
40000000400000000000000014040000000000000800040000800400000000040000000002080000000402010800444
00040000000008000a040000002840240200008000000000001000000001000000800020080042400',
'completedLength': '16859136',
'connections': '49',
'dir': '/mydownloads',
'downloadSpeed': '554196',
'files': [{'index': '1',
'length': '267328301',
'path': '/mydownloads/ChromeOS-Zero.tar.gz',
'selected': 'true',
'uris': []}],
'gid': '4',
'infoHash': '0dcbd7b411b70da1f8a6025c70f6bbb890d36546',
'numPieces': '1020',
'numSeeders': '17',
'pieceLength': '262144',
'status': 'active',
'totalLength': '267328301',
'uploadLength': '0',
'uploadSpeed': '0'}]
-
اگر XML RPC پشتیبانی می کند که دیگر زبان مشکلی نخواهد بود. فقط باید بررسی شود قبلا کسی رابط گرافیکی مناسبی برای آن ننوشته باشد.
-
یک پیشنهاد دارم که شاید جالب باشد:
با توجه به تجربه شخصی گاهی axel گاهی aria2c و گاهی wget بهترین کارایی را دارند.
اگر بتوان یک GUI یا script نوشت که ابتدا کارایی هریک از این برنامه ها را تست کند و بعد شروع به دانلود با بهترین نرم افزار کند خیلی مشکل گشا خواهد بود.
در مورد wget باید اینو بگم که نمیتونه به صورت موازی دانلود انجام بده یعنی از چند کانکشن برای دانلود فایل استفاده کنه!
ولی از بین aria2c و axel دوستانی که امتحانشون کردن هر کدوم که بخوبی جواب میده و با سرعت بالا دانلود هارو انجام میده یکیشو انتخاب کنیم و بصورت تیمی روش کار کنیم تا یک رابط کاربری خوب مثل IDM واسشون ایجاد کنیم
-
اگر XML RPC پشتیبانی می کند که دیگر زبان مشکلی نخواهد بود. فقط باید بررسی شود قبلا کسی رابط گرافیکی مناسبی برای آن ننوشته باشد.
تو سایتش قرار دادن چند تا رابط کاربری رو ولی هیچکدوم به درد نمیخورن در واقع مثل رابط کاربری IDM نیستن کلا ای IDM یه چیزه دیگس که هنوز منو وابسته ویندوز میکنه!
-
یک پیشنهاد دارم که شاید جالب باشد:
با توجه به تجربه شخصی گاهی axel گاهی aria2c و گاهی wget بهترین کارایی را دارند.
اگر بتوان یک GUI یا script نوشت که ابتدا کارایی هریک از این برنامه ها را تست کند و بعد شروع به دانلود با بهترین نرم افزار کند خیلی مشکل گشا خواهد بود.
در مورد wget باید اینو بگم که نمیتونه به صورت موازی دانلود انجام بده یعنی از چند کانکشن برای دانلود فایل استفاده کنه!
ولی از بین aria2c و axel دوستانی که امتحانشون کردن هر کدوم که بخوبی جواب میده و با سرعت بالا دانلود هارو انجام میده یکیشو انتخاب کنیم و بصورت تیمی روش کار کنیم تا یک رابط کاربری خوب مثل IDM واسشون ایجاد کنیم
من خودم با aria2 کار نکردم ولی اکسل به نظرم همه امکاناتی که لازم هست رو داره ولی این نکته باید حل بشه که دقیقا چطور از کد های اکسل استفاده بشه یعنی اکسل الان که فایل رو میگیره و درصد هارو توی ترمینال چاپ میکنه و اگه خطا داد هم میپره بیرون ولی برنامه ای که قراره نوشته بشه باید درصد ها از یه پراسس دیگه که کار دانلود رو انجام میده بگیره و به پراسس اصلی بده که اون توی صفحه اصلی برنامه نشون بده و برنامه بتونه دستور توقف و این ها هم به پراسس های دانلود بده.
اگه کسی کمکی تو این زمینه بکنه میشه حداقل یه سری کارهای اولیه رو انجام داد.