Show Posts

This section allows you to view all posts made by this member. Note that you can only see posts made in areas you currently have access to.

Topics - chip!

Pages: [1] 2 3 4 ... 11
Bit Che - Info & Updates / Bit Che 3.6 -- Build 2 (October 29, 2016)
« on: October 29, 2016, 02:36:01 am »
Bit Che 3.6 -- Build 2 (October 29, 2016)

Please use this thread for discussion:,2511.0.html

Change Log:

new: Bit Che 3.6 is free and has all features unlocked (no Plus Edition anymore, enjoy!)
new: search cache for a specific HASH (auto detects HASH search)
fixed: many bugs and enhancements

SHA256:   a4c90a4daed6c5832b89ae4e053f37df42da43ba1030ec46e4b1c5df1b8f2169
File name:   bit_che_3_6_2_install.exe

SHA256:   ad1e069d20726d2b57fb45483b516b7b68f24b3a2c98a7e56dea64d656056961
File name:   Bit_Che.exe

please donate if you enjoy... there is no longer a Plus Edition, so your donation is purely for support!  Thanks!

please report any bugs, issues, or confirmation that all is working.   

Bit Che - Info & Updates / Bit Che 3.5 -- Build 30 (November 7, 2015)
« on: June 06, 2015, 11:48:43 am »
Bit Che 3.5 -- Build 30 (November 7, 2015)

Please use this thread for discussion:,2511.0.html

Change Log:
fixed: torrent URL missing if 404 on Torrent Details
fixed: #comment fix for script engine lines
improved: do not use SSL if TLS is available
fixed: search box redraw after min/max on Windows 10
fixed: die button/function stops further morepage requests

script engine:
new: added function setcookie (sName, sValue)
improved: array function now can pull from @r if @q is not needed
fixed: script engine: 'find' bug with daisychained search terms

SHA256:   710e66efa322d58c35f9fe442b3df311bc9c8133b95aaff570975d426d90a0a6
File name:   bit_che_3_5_30_install.exe

SHA256:   f968ce8ae828ee470646130e11d9bc3a464cc2d10b643375622ab04971300c76
File name:   Bit_Che.exe


please report any bugs, issues, or confirmation that all is working.   

Bit Che - Info & Updates / Bit Che 3.6.x - Discussion
« on: February 21, 2015, 04:35:50 am »
Please use this thread to discuss Bit Che 3.6.

Bit Che - Info & Updates / Bit Che 3.5 -- Build 26 (June 6, 2015)
« on: February 21, 2015, 03:49:19 am »
Latest build:,2537.msg21430.html#msg21430

Please use this thread for discussion:,2511.0.html

Change Log (since 3.0 build 10):
new: Script Groups for better organization, requires Plus (thanks ID101)
new: login#= for custom login URL when using a Mirror (available if Site requires a custom URL not related to @Home)
new: Script Mirror Checker (via protected menu, open and close Debugger, and requires Plus) (thanks Bovski)
new: simple http file type detection for basic support for fetching non-torrent files  (thanks Bovski)
improved: proper support for Synology NAS (thanks joecodino and jcpamart)
improved: Unicode searches supported (not for Wine though)
improved: better Unicode support for GUI
improved: Unicode script files supported (UTF-16 only, thanks CuF)
improved: shows script errror status on script list (thanks Bovski)
improved: search tab size auto adjusts to content (thanks FantomX)
improved: better status messages for saving/processing torrents
improved: better proxy support (thanks Bovski)
improved: better URL handling for Home/Profile (thanks CuF)
improved: adjusted UI width for search history (thanks AnthonyB)
improved: moved 'Update Scripts' under 'Script Pack' menu
fixed: several bugs with multi-pages, only using added results, ignoring auto filtered results, max results bug (thanks CuF)
fixed: bug with Script Pack Update reporting (thanks Bovski)
fixed: no more double window refresh when loading torrent views
fixed: 'Open With' menu via the Torrent Details dialog now works
fixed: bug with search tab incorrect width (thanks FantomX)
fixed: bug with opening same torrent details more than once with multiple Torret Detail windows
fixed: bug with after stopping current search, using debugger, and 'Open With' using code sections
fixed: http redirect issue (uses win32 api now)
fixed: properly shows option checkmark when log directory exists and is logging.
fixed: missing icon resource from executable
fixed: minor improvements Coffee Cup dialog
fixed: automatic conversion of size reported in bytes
fixed: Wine environment improvements (thanks sheepdestroyer)
fixed: bug with tab resizing/overlapping (thanks MartinElk)
fixed: misc other bugs

Script Engine Change Log:
new: htmldecode() script function to covert &#html; chars to strings
new: notify() function for popup notifications (see Synology script)
new: mergeurl() function to better support combinging domains and pages
improved: debugger engine improvements, unicode support, run button added, multipage info added, #comment line support (thanks CuF and Bovski)
improved: utf8decode function now supports custom code page
fixed: script engine parsing bug (thanks Bovski)

SHA256:   e4ef92437824dbde5902f9e6a880dc91d9a42a0091b706ca8cb68d3dd968146c
File name:   bit_che_3_5_18_install.exe

SHA256:   a86191fcbfff48f5a740f1ddb51e650e6f25f0429f45ab99daf3093430a0b4f7
File name:   Bit_Che.exe

also included .zip with 'Settings.ini' as an example of launching Bit Che as portable.


Connection Errors:
Manually check your internet connection and verify you can reach the remote site in your web browser.

!### = HTTP Response Error Number provided by the web server of the given site.
    !404 = HTTP Error 404: Page Not Found.
                (Check the Script URLs).

!TO = Connection Time Out. Normally a temporary issue. Could be either the server is over loaded, problem with your internet connection/provider, etc. Try again in a few minutes.

!NC = No Connection. Similar to a Time Out error, except BC received an error trying to make a connection to the remote server. Usually this indicates the problem is with your internet connection/provider. Try again in a few minutes.

!BR = Bad HTTP Request. The URL given to BC to connect to is not valid. If this error is seen after a Script is processing a code section, then the Script either parsed the data wrong and built an invalid HTTP request, or the website itself provided bad data. Either way, the Script may need to be updated.

Script Processing Errors:

!FH = Script 'Find' Halt  (The Script stopped because it did not find some text it was expecting. Usually this means either no results or bad html page)

Login or User Account Errors:

!LE = Login Error, could not login. Manually check your account credentials and update Bit Che stored account info.

Bit Che - Info & Updates / Bit Che 3.5 - Change Log History
« on: August 16, 2014, 08:57:30 am »
Latest Build - Public:   
Bit Che 3.5 - Build 18 (February 21, 2015) posted here.

Prior Public:

Since last public version (2.0 build 60):

new: able to fetch results from searches with multiple pages (requires Bit Che Plus and scripts to be updated, and setting ENABLED in Preferences)
new: allows sending torrents/magnets to external applications or servers (Synology, uTorrent Remote, Trans. Remote GUI, etc)  - thanks skywalka & regi100
new: support for RSS (through custom scripts) built into Coffee Cups.  See the example script in %appdir%\scripts\other\coffee\ (if you want to use, Personal then edit your User_ID).
new: export results list to .CSV file  - thanks rgrun1
new: script engine function 'resubmit' to allow url resubmitting/redirection/forwarding
new: added option to auto scrape torrent on (View Torret Details dialog)
new: create Magnet link for torrent (now under 'More' button) (View Torret Details dialog)
new: disable and/or hide scripts you do not want on your script list

improved: added languages, coffee scripts, and external scripts to the default pack
improved: added flag to freeze scripts to prevent updating (and override to force)
improved: 'Save Torrent', 'Open Torrent', and 'Open Torrent With' actions from results list now support multi code sections to fetch torrent/magnet (as 'View Torrent' dialog does)
improved: supports http redirection to a magnet link while fetching url
improved: does not fetch torrent again if already loaded for 'View Torrent' dialog (duh! reduces bandwidth and speeds up torrent launching)
improved: modified size filters to be more practical
improved: added 3 more result context menu actions - open with external, copy result name to clipboard, and launch google search
improved: results list mouse middle click now supports new context menu options
improved: allows search request to use POST
improved: profile editor reworked - thanks Bovski
improved: support for Basic HTTP Authentication for login sites
improved: added a new script header flag "initialize=1" which will trigger the code section labeled [initialize] to be processed before beginning the search. 
improved: allows the ability to modify any of the search variables, including new @search, @profile and also use the read-only $descriptions (1 if turned on and 0 if turned off). 
improved: some language translation widths and heights based on feedback from gojko and Exoskeletor (thanks guys!)
improved: added 'cookie' and 'referer' support for cache sites
improved: torrent scrape error detection

fixed: torrent hash parsing/calc (finally fixed bencoding issue)
fixed: torrent scrape for private sites
fixed: 'Locate' button in the script debugger for 'find() and extract()'
fixed: urlencode function and properly urlencode the @search
fixed: properly ignores scripts without given profile search url (even if set with '/') - thanks bovski
fixed: allows search profiles set with '/' to use main search profile url when manually enabled - thanks bovski
fixed: fetching URLs prefixed with '//' to use HTTP or HTTPs protocol based on referer
fixed: HTTP authentication error (bug in winhttp - seen on Windows 8.1)
fixed: cookies lost on redirection request (seen on Windows 8.1)
fixed: not detecting certain .torrent handlers applications - thanks BugMagnet
fixed: search with forced 'referer' for login sites
fixed: other minor bugs

Script files should be saved as SiteName.ini and either ANSI OR UTF-16 format.

1. [script] - Required. At the top of the file:

Code: [Select]
modified=author yyyy/dd/mm

Optional fields:
pwd=1 - flags the script to use the Login (site requires user/pass and login)
initialize=1 - flags the script to use the [initialize] section to process the search url and search terms before submitting a HTTP request
enabled=0 - flags the script to be disabled
notes= - just to store notes
cookie=COOKIENAME=VALUE; COOKIENAME2=VALUE; (force a cookie value or multiple cookies before searching)
referer= - force a referer URL for the search
special=1 - force using the Special Login tool (sites that require captcha, see example script in the login section below)

2. [home] - Required. These are the base URL (usually the domain) or mirrors for a Site. At least 1=URL is required.

Code: [Select]

3. [profiles] - Required. "search type profiles" - These are the additional page strings which combined with the 'home' will create the Search URL. Put a specific string for the different profiles if the site supports it.

Code: [Select]

Notes: %SEARCH% will be replaced with the Search query and %PAGENUM% (if used for multipage support) will be replaced with the current page.
Also, "all, audio, video, apps" are the default profiles, but if you are adding other profiles, such as "anime" then include a profile URL here for "anime=URL".

4. [nextpage] - Optional. If the site supports multiple page results:

Code: [Select]

Example Script:


type=1 or 2
1 is for sequential order starting from the value of "initial=". For example, the first page is "1". Next it goes to "2". This is the most typical.
2 is for 'result count based', starting from value of "initial=". For example, if initial is "0", then the first page is "0". If 35 results are returned, then the next page is "35" (0 + 35). If "35" more results are returned, then page 3 is "70").

initial= the initial value for the "page" (typically this should be 1).

5. [initialize] - Optional. Used if you have initialize=1 in the [script] header.

Code: [Select]
code section

Example Script:

can manipulate pretty much anything prior to starting the search, such as: @search, @profile, @descriptions, @form (form= from [login] section), or $login (login= from [login] section), $referer, $cookie, etc

6. [login] - Optional. Used if you have pwd=1 in the [script] header. Here is an example:
Code: [Select]
failed=>Site Login</

Optional fields:
referer= - force a referer URL for the search
login#= - can be used if a Home/Mirror requires a custom URL for login  (# matches the home #)
prelogin#= - can be used if a Home/Mirror requires a custom URL for prelogin (# matches the home #)
referer#= - can be used if a Home/Mirror requires a custom URL for referer (# matches the home #)

Example Script:
Normal Login:
Special Login (for captchas, etc):

7. [code0] - Optional. Used if prelogin= is set to: code(`URL`,0), then it will fetch "URL" and return to Code0 for processing BEFORE attempting to login.

code section

Example Script:

8. [code1] - Required. The main code section for all scripts.

code section

Example Script:

9. [code2 through 9] - Optional. Used if $torrent URL is created with code() function. This allows you to fetch a 2nd,3rd,(etc) page, execute another code block and extract $torrent.

code section

Example Script:


Basic Functions Detailed - Script Engine 3.5:

findh -- Searches a string for another string but HALTS the script if it is not found. Typically the first line of the script. Stores the location of the found string as a integer into the return variable.

vRes findh vStartvDatasSearch )

   searches the data variable "@data" for "</td>" starting at position stored in variable "x" and stores the result into variable "z". if "</td>" is not found, the script halts (dies).

   Optional extended use, can search for successive terms (up to 10):

vRes findh vStartvDatasSearch sSearch2sSearch3...etc 

   Note: this will halt the script if the last "" is not found in order starting from the location of the first term. This us useful to make sure you are working with the expected HTML output.

find -- Searches a string for another string. Typically Stores the location of the string as a integer into the return variable.
   Returns: Number

vRes find vStartvDatasSearch )

   if the String is NOT found, will return `0`

findrev -- Searches in reverse for a string in a variable.
   Returns: Number

vRes findrev vStartvDatasSearch)

   searches from the end of "t" for the location of "title=" and stores it in "x"
   Note: "-1" for the vStart always searches from the END of the string.

crop -- Crops a string based on a starting and ending locations
   Returns: String

vRes crop vDatavStartvEnd)

mid -- Cuts a string based on a starting location and length (number of characters to include)
   Returns: String

vRes mid vDatavStartvLength)

   Note: vLength is optional -- if not supplied, then the string will be cut from the starting location and include everything after that position.


split -- Used to split up a data block into the arrays.
   Returns: String() Array

   This is a special function any only 2 result variables are allowed: r & q

r=split(@data,`</tr>`) - sets up the "@r" array delimiting with </tr>
q=split(@r,`</td>`) - sets up the "@q" array delimiting with </td>

   Note: the delimiter can be anything you like, the result variables can not be changed. The use of "@r" is automatically the STRING of the array starting at Array(0). Each time the "loop" or "aloop" is used, then the Array(#) is automatically increased when you access "@r" next, so that "@r" always is the current array of the "results".

array -- Used to access data from the "@q" array and stores into a variable for manipulation.
   Returns: String


   stores the 3rd item in the "@q" array to the string varriable "t".
   note: arrays always start numbering with 0 for the first item which means when accessing the array items:
   0=1st 1=2nd 2=3rd ..etc

replace -- searches a string variable for a specific string and replaces it with another
   Returns: String

vRes replace vDatasSearchsReplace)

   Useful when Bit Che needs to parse tricky HTML code,etc.

extract -- special function that combines searching, cutting, extracting, and cleaning.
   Returns: String

vRes extract vPositionvDatasFindStartsFindEnd)

   searches variable "t" starting at the value of "z" for "<bc>" and extracts the data until "[-bc-]". this extracted data is then saved into variable $name. The extracted data is automatically "scrubbed" and cleaned from unwanted HTML codes.


vRes extract vPositionvDatasFindStartsFindEndsAddFrontsAddEnd)
$page=extract(z,t,`<bc>`,`[-bc-]`, ``,`?action=view`)

   both sAddFront and sAddEnd are OPTIONAL. the function is the same as without, but if present, then sAddFront will be added to the FRONT of the new string, and sAddEnd will be added to the END of the new result string.

put -- allows you to store a string/number into a variable
   Returns: String/Number

vRes put sString )
t=put(`hello world`)

   stores "hello world" into "t"


   stores "1" into "t"

   Note: you can store numbers or strings into variables.

& -- allows you to combine strings OR variables into one variable.
   Returns: String

vRes = & ( vFirstvSecondetc..)

   combines "k" with "m" and saves it as variable "t"

   Note: You can also combine text strings instead of variables. Example:
   t = & ( ``, q, `.torrent`)
   If variable q = "/download.php?name=file", then t would equal

len -- returns the Length of a string Variable
   Returns: Number
vRes len sVar)


   if "d" contains the string "hello world" then x would be set to the Length: 11

+/- -- allows you to add or subtract a number from a variable
   Returns: Number
vRes = + ( sNum)

variable "x" "x" 1

variable "x" "x" 5


start -- indicates the line number in the script where Bit Che should "loop" back to to process the next array item in the result array "@r".
   Returns: <none>


aloop -- adds the currently stored special torrent information variables to a torrent result in Bit Che and loops back to the "start" of the script. automatically advances to the next "@r" array item.
   Returns: <none>


loop -- loops back to the "start" of the script. automatically advances to the next "@r" array item. does NOT save the special torrent information to a result in Bit Che
   Returns: <none>


Other Special Functions:

vacuum -- removes characters like "tab" and "line return/breaks" from a string
   Returns: String


scrub -- removes HTML from a string (note: done automatically when saving a function"s result to a $special variable)
   Returns: String


die-- halts the script execution
   Returns: <none>


Currently Undocument:
reset -- reset @data back to the original HTML (as it was at the beginning of the script execution) (used for debugging)

urlencode(sString) -- URL encodes a string for HTTP.

urldecode(sString) -- converts/decodes a URL coded string.

utf8decode(sString) -- converts/decodes a UTF8 coded string.

utf8encode(sString) -- converts/encodes a string to UTF8.

code(sString, sNum) -- used to specify a second code section. this is used when Bit Che must fetch a 2nd page, execute another script, and extract more info.

#=resubmit(sPage) -- used to redirect or resubmit a HTTP request. The # is the amount times the script can resubmit. Usually this # is 1 or 2 to prevent unexpected endless script loops.

#=notify ( sTitle, sMessage ) -- used to provide User with a pop up notification that will hide after 5 seconds. The # is required but not used.

MergeURL(sBaseURL, sNewPage) -- useful when crafting HTTP URLs.

htmldecode(sText) -- decodes &#HTML; characters found in the sText

Variable Handling:

Strings -- all strings must be escaped with ` -- for example this specifies test as a string: `test`
Variables -- anything not a String or a Special Variable is treated as a Variable -- for example this specifies test as a variable: test
$Special Result Variables -- variables that hold info regarding the result
@Special Data Variables -- variables that act special

Most basic script commands follow this pattern:



  • varName is the return variable (can be either a Variable, $Special Result Variables, or @Special Data Variables)
  • Function() is the function name
  • p1..p3 are parameters (can be Strings, Variables (any type), or Numeric) and separated by comma

$Special Result Variables:

$name - Result Name
$size - Result Size
$page - Page/URL to view more info about the Result
$date - Result Date (or time, etc)
$seeds - Result seeds/peers
$leeches - Result leeches/downloaders
$torrent - URL for the .torrent or magnet link
$source - Site Name where the Result came from

@Special Data Variables:

@r - (array) - the entire results table split into the array
@q - (array) - result from the @r array further split to parse the single result
@data - (string) - the HTML response data sent to the script engine
@i - (integer) - index counter. initialized as 1 and always reset to 1 after =array() function
@home - (string) - the URL for the source of the @data (as supplied in the script file from [profile])

@Additional (available only during [initialize] section)

@descriptions - (numeric) - either 1 for include description results OR 0 for no description results
@search - (string) - the search terms
@profile - (string) - the search URL
$form  - (string) - the FORM string from [login] section
$cookie  - (string) - set or update a cookie  (format of the input string must be  "COOKIE=VALUE;")

Script Engine 3.0 Functions List:

find - searches for a string
findh - searches for a string(s) and HALTS if not found
findrev - searches for a string in reverse
crop - crops/cuts a string
split - split a data block into an array
array - access data from the 'q' array
replace - replace a string with another
extract - extract: combines search, crop/cut, and clean.
put - store a String into a variable
& - combine Strings OR variables
+ - add a Number from a variable
- - subtract a Number from a variable
len - returns the length
ucase - returns a string in uppercase
lcase - returns a string in lowercase

urlencode - URL encodes a string for HTML
urldecode - decodes a string for HTML
utf8decode - decodes a UTF8 string

vacuum - removes extra characters
scrub - removes HTML tags
code - used to add functionality for second code section

getcookie - retrieves a specific cookie's data
resubmit - stops script execution and resubmits/redirects to a new url

Script Control Functions
start - indicates the start of the result parsing loop
add - adds the current torrent to the results list
aloop - adds the current torrent to the results list and loops back to 'start' with the next result in @q
loop - loops back to 'start' with the next result in @q
die - ends the script
reset - resets the @data variable back to its original value

Conditional/Loop Functions
if () then
elseif () then
end if



if (x>and x<1then
elseif (
end if


while(x!or y!0)

NOTE: for the above 2 examples, the following is true:

1. evaluation:
">" - greater than
"<" - less than
"!" - NOT equal
"=" - equal to

2. multiple conditions (IF, ELSEIF, WHILE can accept a SINGLE evaluation or a SECOND evaluation using):
"and" -- both evaluations are valid
"or" -- either evaluation are valid

Notes: Scripts are designed to parse HTML output into 2 arrays (@R and @Q). The first array '@r' stores the data that contains all of the 'results' and is parsed based on whatever delimiter is required to put each complete result into its own array element of '@r'. The delimiter for '@r' is typically "</TR>". The second array '@q' is used when looping through each result in '@r' and splits the data into a organized data array. The delimiter for '@q' is typically something like "/TD>". Then we loop through the information array and store the torrent information to special variables.

Scripts & Development / multi-page support
« on: March 03, 2014, 01:57:29 pm »
using the latest beta with the new functions resubmit() and getcookie(),  we are able to achieve a working multi-page search...  attached is a proof in concept, except that it does not respect the BC->search result limit because this is a rather nifty hack on the script engine using a cookie as a 'settings' variable and resubmiting the request until there are no more results.. hmm :)

jump to the last post for the latest version (Bit Che 3.0 build 8)):,2415.msg21318.html#msg21318

the following is kept for information purposes:

Bit Che 2.0 Build 62 (April 17, 2013)

-new: added a new script header flag "initialize=1" which will trigger the code section labeled [initialize] to be processed before beginning the search. &nbsp;
-new: this allows the ability to modify any of the search variables, including new @search, @profile and also use the read-only @descriptions (1 if turned on and 0 if turned off).
-fixed: the redirect '//' bug for toggling same HTTP or HTTPS protocol as the referrer
-fixed: 'Locate' button in the script debugger for 'find() and extract()'
-fixed: properly urlencode the @search (uses Win32 API.. so for example " " is converted to "%20" instead of "+"... also takes care of all the other characters)
-improved: some language translation widths and heights based on feedback from gojko and Exoskeletor (thanks guys!)

Bugs & Feature Requests / issue: %search% with space
« on: April 15, 2013, 02:19:06 am »
appears some times having a space in the %search% needs to be translated to %20 instead of "+"

Bugs & Feature Requests / Bug: 301 redirect bug
« on: April 15, 2013, 02:17:47 am »
redirection that uses '//' to represent either https:// or http:// fails


1. Turn on Script Debugger:

2. Learn about the Script Engine and Functions (3.0): &nbsp;

3. Watch and learn from a Script in action: &nbsp;
a. load up Bit Che, Hit F2 to ensure the Script List in visible, and select one single script (this will be the one you are going to watch)
b. Hit F12 to display the Script Debugger
c. launch a search in Bit Che
d. step through the Script line by line using the controls on the Script Debugger.
e. watch and learn as the functions are called, the variables changed, and ultimately the results are saved

4. After you get a handle of the Script Engine, the functions, and the Script Debugger, then you are ready to edit existing scripts (update/fix them?) and/or create your own scripts. &nbsp;To create your own:
a. select "Open App Data Folder" from the File menu of Bit Che.
b. open the 'Scripts' folder
c. open the 'default' folder
d. put your new script here (copy an existing script file, rename, and edit it)

Bonus (optional, for advanced users):

5. Create your own Script Pack and host it for others: &nbsp;

Pages: [1] 2 3 4 ... 11