Jump to content

RapidQueuer 2.4.4


Datenshi
 Share

Recommended Posts

Datenshi,

In case you haven't discovered it yet, AutoIt v3.3.2.0 (just released), breaks RQ 2.4. But it's not too bad! The following is what I did to get it running again. The original coding is commented and the new coding follows. The 5th item is new:

;~ Opt("OnExitFunc", "closeclean")
OnAutoItExitRegister("closeclean")

;~  InetGet($DownloadFinalLink, $DownloadFolderPath & $FileName, 1, 1) ; start download.
$hDownload = InetGet($DownloadFinalLink, $DownloadFolderPath & $FileName, 1, 1) ; start download.

;~  While @InetGetActive
While InetGetInfo($hDownload, 2) = False

;~   $BytesRead2 = @InetGetBytesRead
$BytesRead2 = InetGetInfo($hDownload, 0)

;; New line, place after the Wend for While InetGetInfo($hDownload, 2) = False
InetClose($hDownload)

ILLBeBack

Link to comment
Share on other sites

  • Replies 278
  • Created
  • Last Reply

Top Posters In This Topic

Top Posters In This Topic

Hello Friends,

Windows Edition: WINDOWS 7 ULTIMATE

System:

RATING: 2.6

PROCESSOR: AMD ATHLON 64*2 DUAL CORE PROCESSOR 3800+ 2.00GHZ

INSTALLED MEMORY (RAM): 3.00GB (2.50GB USABLE)

SYSTEM TYPE: 32-BIT OPERATING SYSTEM

Do you think that my Operating System is causing this issue?

If YES, shall I downgrade my PC's Operating System to XP/VISTA?

Thanking you,

rahulwithu

Edited by rahulwithu
Link to comment
Share on other sites

can you add further clipboard monitoring, just like flashget, fdm, etc do?

http://www.autoitscript.com/forum/index.php?showtopic=56158&st=0&p=426033&#entry426033 has it all.

and also, when we click on add from clipboard, if there is any rs links available, it takes it. but badly formatted rs links or unavailable rs links are not notified.

Link to comment
Share on other sites

@rahulwithu, I'm running Windows 7 and am not having any problems with RQ in it, so I would not think XP will help you.

@rajeshontheweb, RQ already has an option to monitor the clipboard, at least while the main window is open (see "Monitor Clipboard For Links"). Is that what you are looking for?

ILLBeBack

Link to comment
Share on other sites

I'm having a problem with the .au3 version of RQ_2.4. I have both the exe and the au3 in the same folder; if I run the exe with -as it starts correctly; but then if I run the au3 with the same parameter (1) it doesn't autostart: I get the GUI selection box; and (2) if I click Start, I consistently get an error message:

line 269:

$FileStatusCode=$InfoArray[4]

Array variable has incorrect number of subscripts, or subscript

dimension range exceeded.

ADDED: the non-autostart seems to be fixed if I call autoit3.exe with the au3 script name as a parameter; but the line-269 error is still there.

The au3 file has

#AutoIt3Wrapper_Res_Fileversion=2.4.0.0

Can anyone see what's going wrong? Thanks!

Edited by Phil Viton
Link to comment
Share on other sites

Maybe I'm doing something wrong, but it looks to me as if, when you run RQ with the autostart parameter and either linklist.dat doesn't exist or is of size 0, RQ has a problem closing gracefully. RQ puts up an empty notepad file; if you try to close it, RQ adds another, and so on. I've had to close RQ down using the task manager.

If I'm not doing something wrong, then presumably the fix is for RQ to check the size of linklist.dat when it starts, and if the file can't be found or is size zero, then RQ should just close. (Obviously, only relevant under autostart).

Regards,

Link to comment
Share on other sites

Phil, they're both the same version, its not possible to run the au3 without loading it with autoit3.exe as its a sourcecode which has to be interpreted. Its not a bug, its normal.

$FileStatusCode=$InfoArray[4] ,is suppose to contain data receieved from Rapidshare API.

If you're comfortable editing the source, put

Filewrite("filestatusdump.txt",$APIQuery[1])
BEFORE
$FileStatusCode=$InfoArray[4]
and send filestatusdump.txt content to me by PM, it'll dump the info received from the rapidshare API.

Maybe I'm doing something wrong, but it looks to me as if, when you run RQ with the autostart parameter and either linklist.dat doesn't exist or is of size 0, RQ has a problem closing gracefully. RQ puts up an empty notepad file; if you try to close it, RQ adds another, and so on. I've had to close RQ down using the task manager.

If I'm not doing something wrong, then presumably the fix is for RQ to check the size of linklist.dat when it starts, and if the file can't be found or is size zero, then RQ should just close. (Obviously, only relevant under autostart).

Regards,

You're not doing something wrong, running cmd -as/autostart with an empty linklist.dat will spawn a new notepad window until links are added. This is a bug.

Try this to fix it.

Change in function CleanLinklist():

If @error Then
        MsgBox(0, "Failed", "Failed to find any rapidshare links" & @CRLF & "Make sure that you fill LinkList.dat or/and import links from clipboard before pressing Start.")
        Run("Notepad.exe " & $LinklistFilePath)
        Return SetError(1)
    EndIf

Replace with:

If @error Then
        MsgBox(0, "Failed", "Failed to find any rapidshare links" & @CRLF & "Make sure that you fill LinkList.dat or/and import links from clipboard before pressing Start.")
        Run("Notepad.exe " & $LinklistFilePath)
        If $CMDAutoStart = 1 Then
            Exit
        Else
        Return SetError(1)
        Endif
    EndIf
Edited by Datenshi
Link to comment
Share on other sites

Just to let u guys know, I'm working on converting to 3.3.2.0.

ILLBeBack , was nice enough to post what has to be changed in order to get the current v2.4 to work. So if you want to update your AutoIT then i suggest you read that post in order to get RQ source to work.

But there's a couple of other changes that allows for some optimizations and fixes that previously had to be worked around, which I'm working on atm.

For example, they bug fixed proxy authentication which wasn't working with 3.3.0.0, id like to add support for that.

Oyeah, I'm also working on a way to change and view the links loaded into RQ while its downloading. But atm its pausing the script which is "dangerous" seeing as Rapidshare has a time limit on their tickets.

Edited by Datenshi
Link to comment
Share on other sites

not that i may even use it ever again but having used it once, i felt a few things that might be useful

clipboard monitoring - yes its there already, only i didnt realise it is paused when download is in progress

and more, i would like to see a gui built around .. rather than just a progress bar only.

there better be a log file (of course optional) which would write all links used so far with start and finish times.

most important, till download is finished, we better add .tmp or .rq to the file extension just to identify its an incomplete file. ie, now we have xxyy.txt being downloaded which is 20 MB and there was a power failure / internet disruption, i wont be able to recognise if the 10 MB file downloaded is correct or not!

Link to comment
Share on other sites

rajeshontheweb, Having used RQ once, you obviously have much too little knowledge about RQ that you should really consider checking twice before having opinions/"suggestions". Actually, I question if you even looked which features are available. Here's why:

clipboard monitoring - yes its there already, only i didnt realise it is paused when download is in progress

You can import links using the clipboard, Traymenu > Add more links > Import from clipboard. The monitoring mode is disabled to prevent long periods of script halt if the Msgbox isn't clicked, Rapidshare have time-limits on their tickets("session expired"), and seeing as AutoIT is singlethreaded its a limitation of the scripting language and not RQ.

and more, i would like to see a gui built around .. rather than just a progress bar only.

You're using the wrong software, I value RQ's slim size,minimalistic and discrete design. There's other things to do on a PC then to watch your downloads. There's plenty of other (clunky) downloaders which better suits your need.

there better be a log file (of course optional) which would write all links used so far with start and finish times.

I'm assuming poor English here, and the answer is "There better NOT be a log file!", Whats being logged are Errors, why log how long a download took? This isn't a benchmark tool.

If you want to know which downloads are done, have a look in your downloads folder.

most important, till download is finished, we better add .tmp or .rq to the file extension just to identify its an incomplete file. ie, now we have xxyy.txt being downloaded which is 20 MB and there was a power failure / internet disruption, i wont be able to recognise if the 10 MB file downloaded is correct or not!

Sigh, I assume you don't find it hard to recognize which files are being downloaded under normal circumstances. In case of a power failure your link wont be deleted from the linklist, so when you start RQ the next time, it will check the filesize of your file and compare it to the filesize of the link in your Linklist. If the online file is bigger and "overwrite rule" is enabled in options(default on), It will be overwritten with the new file. If there's an internet disruption long enough for RQ to loose connection to Rapidshare, it will be written to errorlog and again, the link wont be deleted from linklist. If there's just a few lost packets which result in a corrupt file, RQ will do an MD5 checksum check on the finished file to make sure its 100% working, before deleting the link from the linklist. Either way, you should be able to identify a broken file by other means then RQ, such as "I just had a power failure, and my file isn't working! maybe it was interrupted!" < BINGO! Edited by Datenshi
Link to comment
Share on other sites

1) yeah i did use that, thats why i had mentioned earlier that it would have been better to monitor it live - but i noticed it is already available. i just didnt realise that while download is active, live monitoring of clipboard is disabled and i did use the option to import from clipboard.

one thing i didnt mention was that rapidshare.de links were not available for import from clipboard this could be intentional as language barriers might have made it harder to code it - so i didnt mention it.

2) point taken, it was just my opinion..

3) point taken, yet my request was not focused on time taken but links list being made available. because the link is deleted from the list and in case i wanted to keep the links for future use --- which i did a couple of items i wanted i have saved them in a text file for future use. if i am to rephrase my feature request it would be ' a log file to log files that have been downloaded (after it is removed from active links list, would be welcome'

Anyways, no logs doesnt bother really.

4) this point came to my mind first time i went to the d/l folder from the tray menu - i saw 4 files in download list, when i opened one of them it was not complete but yet the file was shown available in explorer, i still couldnt use it and then realised that the file size was smaller and when i checked it said it is 80% only complete.(pretty dumb fault , i know) and once i had forced a PC reboot while RQ was active and the link list was lost for unknown reason (which may or may not relate to RQ - i was unsure)

thanks a lot for taking time to explain it all. keep up the good work..

Link to comment
Share on other sites

Hello Datenshi, I love your RQ, thanks for sharing it!

I'd like though to use it to do regular recurrent downloads (specifically the NOD32 antivirus cumulative updates)

and I'd like to send by command-line the single link to add and download instantly.

I can use separate settings.ini file but can I use a separate LinkList.dat file?

If this would be possible I could write my separate Linklist.dat file, and launch RQ with it's specific ini file.

One last item of my wish list is to extend the autostart option or create a silent option in the ini file settings, in case I'd like to exit RQ without shutting down the PC and without having popup messages. In this way I could script regular updates automatically (check -> download -> unrar -> install).

Ciao e buon Natale!

Virgus.

Link to comment
Share on other sites

  • 2 weeks later...

Beginning yesterday, the array $GetCounterStart is not always being defined in function "Wait" or case 2 by the expression StringRegExp($SubmitRequest[1], "(?i)var\sc=(\d{1,3});", 1). I've made a couple of attempts to get RQ to keep trying, but have failed miserably.

I'm not certain, but I think this is only happening during the day when RS is heavily loaded.

ILLBeBack

Link to comment
Share on other sites

Back in Business! Happy New Year everybody ;)

ILLBeBack, Sounds like the same bug that was plaguing 2.3. At least the same variable fails in the same type of situation, strange that it suddenly started appearing again, as it seemed i squashed it before. Either way, I'll look into it. I've btw added a way to see and remove links from the linklist during downloads. But the feature needs some tweaking, I'm not planning on allowing reorganizing of links atm because it'll take a lot of code and cause problems, maybe for later. I'd like to work on stability and bug fixes for the next version, so it probably wont have that many new features.

Edited by Datenshi
Link to comment
Share on other sites

Datenshi,

I was thinking the same thing! It appears that RS has changed the contents of its web page after RQ 2.4, but only sometimes. If I'm understanding correctly the process that RQ is going through when this bug occurs, RQ is obtaining the URL of the actual download from the web page, and assumes the waiting period is also embedded on that page, then calls the "Wait" function where it discovers variable "c" is missing, then crashes because $GetCounterStart has not become an array.

Here's the error shown in Scite's console window when the crash occurs in the Wait function for case 2:

... ==> Subscript used with non-Array variable.:

$timereturn = Timecalc($GetCounterStart[0] - $time)

$timereturn = Timecalc($GetCounterStart^ ERROR

Attached is a copy of the web page contained in RS's variable $SubmitRequest[1] when the crash occurs. I hope it will help you identify the problem.

Being able to view and remove links from the list while downloading will be a very welcomed improvement!

Happy New Year,

ILLBeBack

Missing_Var_C.zip

Link to comment
Share on other sites

So hm, i don't think Errorchk has a regexp match for that error.

<p align="justify">Unfortunately right now our servers are overloaded and we have
no more download slots left for non-members. Of course you can also try again later.</p>

Change to this, basically i just added another regexp to the filters:

Local $Filter[8] = ['', '(?i)again\sin\sabout', '(?i)IP\saddress', '(?i)slots\savailable', '(?i)session\shas\sexpired', '(?i)cannot\sbe\sprovided', '(?i)Currently\sa\slot','(?i)download\sslots']
Local $FilterDesc[8] = ['No String', '15min Wait', 'Max 1 download/ip simultaneously', 'No download slots available on rapidshare', 'Download ticket expired', 'Download could not be provided', 'Too many users downloading','Servers overloaded']

; and in the switch loop below, change
Case 3, 6
[b]To[/b]
Case 3, 6, 7

I'm testing it now, but i haven't had a crash since 2.4 release. Hope i trigger it, It'll explain why its proceeding with the download even if an error is present.

Edited by Datenshi
Link to comment
Share on other sites

I implemented these changes and am testing then now. So far so good as RQ did not crash after four 2 minute waits for a slot, where before it crashed after the first wait. I'll let you know how thing go when RS finally gives up a slot.

ILLBeBack

Link to comment
Share on other sites

In about 6 hours of continuous testing, RS has issued slots to RQ only 3 times. The good news is RQ did not crash using the new filter, and downloaded 3 files.

Now it looks like RS is allocation slots again, and RQ is working normally.

As a double check after the first hour and third hour of testing with the new filter, I reverted to the previous filter and RQ crashed again.

IMO, the addition of the new filter appears to have fixed the issue! Thanks Datenshi! ;)

ILLBeBack

Link to comment
Share on other sites

Hey, i've also had a lot of problems with the thing of recent, although it seems to have been fixed now, thanks!

However, i mean it could happen again, when they change it, so i mean ive edited the function a little, which although doesnt cure all future problems, it should at least make the program usable until a proper fix comes in the future:

Func Errorchk($Errorsrc, $filterset = 0); might be hard to read, but this func checks for errors and handles them as instructed. Easily modifiable.
    Switch $filterset
        Case 0 ; API error filter
            Switch $Errorsrc
                Case 0
                    ErrorOutput("File not found")
                    Return 0
                Case 1 To 2, 6 ; all OK
                    If $iSize <= 209999667 Then Return 1 ; checks if file is over 209999667 bytes(exact size to trigger no 200mb dl's for free users. Dont ask why i found out :P )
                    ErrorOutput("File over 200mb")
                    Return 0
                Case 3
                    ErrorOutput("Server down")
                    Return 0
                Case 4
                    ErrorOutput("File marked as illegal")
                    Return 0
                Case 5
                    ErrorOutput("Anonymous file locked, because it has more than 10 downloads already")
                    Return 0
            EndSwitch
        Case 1 ; page2-source error filter
            Local $Filter[9] = ['', '(?i)again\sin\sabout', '(?i)IP\saddress', '(?i)slots\savailable', '(?i)session\shas\sexpired', '(?i)cannot\sbe\sprovided', '(?i)Currently\sa\slot','(?i)download\sslots',' ']
            Local $FilterDesc[9] = ['No String', '15min Wait', 'Max 1 download/ip simultaneously', 'No download slots available on rapidshare', 'Download ticket expired', 'Download could not be provided', 'Too many users downloading','Servers overloaded','Unknown error']
            If StringRegExp($Errorsrc, "(?i)<h1>Error</h1>") Then
                $Errorsrc = StringRegExp($Errorsrc, "(?s)(?i)<h1>Error</h1>(.*?)<script>", 1);_StringBetween($Errorsrc, '<div class="klappbox">', '<script>');'<div class="untermenue">')
                $Errorsrc = $Errorsrc[0]
                For $i = 1 To UBound($Filter) - 1
                    If StringRegExp($Errorsrc, $Filter[$i]) > 0 Then
                        Switch $i ; Return 0 = Skips to next link, Return 1 = Continue with current link
                            Case 1 ; 15min wait mode
                                Wait(1)
                                Return 1
                            Case 2 ; IP in use, Max 1 download/ip simultaneously
                                ProgressSet(0, "Max 1 download/ip simultaneously" & @CRLF & "Checking again every 30sec until its ready.", "ERROR")
                                TraySetToolTip("RapidQueuer" & @CRLF & "ERROR - Max 1 download/ip simultaneously" & @CRLF & "Checking again every 30sec until its ready.")
                                Wait(3, 30000)
                                ExitLoop
                            Case 3, 6, 7 ; No slots for free users/too many users downloading/server overloaded, trying again in 30s
                                ProgressSet(0, $FilterDesc[$i] & @CRLF & "Trying again in 30sec", "Non-Critical Error")
                                TraySetToolTip("RapidQueuer" & @CRLF & $FilterDesc[$i] & @CRLF & "Trying again in 30sec")
                                Wait(3, 30000)
                                ExitLoop
                            Case 4 ; session expired ; this should never happen but who knows?
                                FileWriteLine($ErrorLinksFilePath, "[" & @YEAR & "/" & @MON & "/" & @MDAY & "]" & "-[" & @HOUR & ":" & @MIN & ":" & @SEC & "] -- > " & $DownloadLinkList[$x] & " ## " & $FilterDesc[$i])
                                $Errorlinks = 1
                                Return 0
                            Case 5 ; download could not be provided
                                ErrorOutput($FilterDesc[$i])
                                Return 0
                            Case 8
                                ProgressSet(0, $FilterDesc[$i] & @CRLF & "Trying again in 30sec", "Unknown Error  - Please Report!")
                                TraySetToolTip("RapidQueuer" & @CRLF & $FilterDesc[$i] & @CRLF & "Trying again in 30sec")
                                Wait(3, 30000)                              
                                ExitLoop
                        EndSwitch
                    EndIf
                Next
            EndIf
    EndSwitch
    Return 1
EndFunc   ;==>Errorchk

In my mind this should work, maybe even add a FileWrite into Case 8, so that the html can be saved into a log file and make debugging even easier? Of course im not really able to test this, but does it make sense?

I've added the ExitLoops into the Cases that dont Return, because otherwise, once it has done Wait(3), it will finish the loop, and of course all of them will return a, " ".

Instant Lockerz Invite - www.instantlockerzinvite.co.uk
Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
 Share

  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...