Age Verification
This website contains age-restricted material including nudity and explicit content. By entering, you confirm being at least 18 years old or the age of majority in the jurisdiction you are accessing the website from.
I am 18+ or older - Enter
I am under 18 - Exit
Our parental controls page explains how you can easily block access to this site.

iStripper Playlist and multi-selection tutorial

  Foro / Todo sobre iStripper

JoaXim
Desde en Dec 2007

70 posts
June 26, 2016
Thank you Dorai6
Dorsai6
Desde en Apr 2013

1033 posts
June 27, 2016
Sub Load_playlist()
Dim version_number As Long
Dim item_count As Integer
Dim clip_id As String

Open "My Passport Ultra:Desk Display:data:playlists:Clip Test.vpl" For Binary Access Read As #1
version_number = get_long()
item_count = get_long()
For i = 1 To item_count
clip_id = get_unicode_string
Cells(i, 1) = clip_id
Next i
Close #1
End Sub

Function get_long() As Long
Dim input_data As String
input_data = Input(4, #1)
get_long = 256 * Asc(Mid(input_data, 3, 1)) + Asc(Right(input_data, 1))
End Function

Function get_unicode_string() As String
Dim string_len As Integer
Dim input_data As String
string_len = get_long()
input_data = Input(string_len, #1)
get_unicode_string = ""
For i = 2 To string_len Step 2
get_unicode_string = get_unicode_string & Mid(input_data, i, 1)
Next i
End Function
Dorsai6
Desde en Apr 2013

1033 posts
June 27, 2016
The preceeding post is Visual BASIC for Excel. Executing the subroutine Load_playlist will read and load one playlist. Right now it is hard-coded for a file on my Macintosh. You should replace the path name with the appropriate Windows path to an iStripper playlist. Note that my data folder is in a non-standard location. Note also that the function get_long really only loads a 2-byte integer. I couldn't find a unicode to string converter so I've simply stripped the leading byte from every character in the unicode clip ID string.

I've tested this on my Mac. It should work on a Windows PC if a valid path name is hard-code in the Open statement.

This is the core logic only. It could be expanded to load multiple playlists. It could also be expanced to load model names and card names from the names.xml file. That would be a lot more work and is left as an exercise for the student. 😎
spiderman1804
Desde en Feb 2008

439 posts
June 27, 2016
Thanks Dorsai.
Your code is running perfect in Windows Excel version.
Dorsai6
Desde en Apr 2013

1033 posts
June 27, 2016
Good to know! Thanks for the feedback.

With some additional effort, you could enhance this code to create a cross-reference inventory of all you cards to all your playlists. I'm doing this on my Mac in AppleScript. Each card is a row. Each column is a playlist. Each cell contains the number of times that card appears in that playlist. At present each clip reference is treated the same a a full card reference, but I have ideas for enhancements
spiderman1804
Desde en Feb 2008

439 posts
June 27, 2016
I'm using different batch scripts (BAT files; script files in Windows) to combinate categorie text files, create search string for the search box in iStripper and other things.
Any categorie text file have a card list with one card per row.
To create a VPL file is very easy, but to read it out with batch files not so easy.
Thanks for your Excel script.
JoaXim
Desde en Dec 2007

70 posts
June 27, 2016 (edited)
Thank you @Dorsai6. I will try it. I feel that it iis easy to translate to my computer

By the way, yesterday I tried to load directly a vpl file into an Excel sheet and it works. You get the listing of the cards at the left column from the second row (the first row has some special characters). I see that cards appear in the spreadsheet ordered by card number . But loading that playlist in IStripper, shows cards ordered at ramdom. But if I changed the excel file and saved it as a txt file, changing afterwards the extension to vpl, it didn´t work for Istripper.






Dorsai6
Desde en Apr 2013

1033 posts
June 27, 2016
I tried to load directly a vpl file into an Excel sheet and it works. You get the listing of the cards at the left column from the second row (the first row has some special characters). I see that cards appear in the spreadsheet ordered by card number
I think that was an accident. Did the playlist contain any clip IDs? I think a playlist with nothing but card references might work some of the time, but I think a playlist with clip ID will never work. I can't even do this experiment on my Mac.

Here is a message I wrote explaining the structure of both the playlists and models files.
Decoding iStripper files
http://www.virtuagirl.com/forumPost.php?foId=3&ftId=33201&gotolastpage=1#post502170
Todo sobre iStripper / Decoding iStripper files
I finally took the time to figure out the format of the iStripper models.lst and xxx.vpl files. The .vpl (playlist) files are straight forward. The first 4 bytes (a long integer) is the format ID (=1)...
But if I changed the excel file and saved it as a txt file, changing afterwards the extension to vpl, it didn´t work for Istripper.
Yes, that makes sense. A .vpl file is not an ASCII text file. It is a binary data file and must follow the Totem format exactly.

Jplus
Desde en Feb 2013

56 posts
June 28, 2016
The management of playlist is just the main downside of iStripper as compare to VirtuGirl.
It's a ***** experience and bad user interface.
JoaXim
Desde en Dec 2007

70 posts
June 28, 2016 (edited)
@Dorsai6 : I don't think that readin vpl files with Excel is an accident because I did it plenty of times. As I said, I use Windows 10 and Excel 2013. When I left click on a vpl file, a popup menu allows me to choose "open with..." . If I select Excel, the cards contained in the vpl file appear ordered in a column as I have said. I have also tested to do it with plf files and it doesn´t work (the card numbers are showed in a single line one after the other, separated by a symbol)

Then, I added a new card to the Excel list and saved it. Excel saved it as txt file . I changed txt into vpl and tried to load it from IStripper, but it din´t work, as you also have explained.

So this Excel loading is good to show the vpl contents in a readable form (you can also open the vpl file wih the notepad, as I have seen) but it is not good to modify the vpl file adding or deleting a new card.

Thank you for the message . I am going to read it carefully in orde rto understand a little more of tis stuff







Dorsai6
Desde en Apr 2013

1033 posts
June 28, 2016
@JoaXim,

Have you tried to open a .vpl file that contains a clip reference with Excel? I don't think that will work.

Here is what I think is happening. I think Excel is treating the .vpl file as a simple ASCII file. The first 4 bytes of the file contains the binary value 1 which Excel interprets as 3 null characters and a meaningless control character. Then next 4 bytes is a binary number representing the number of entries in the vpl file. Unless you have more than 255 entries, Excel will interpret this as 3 null characters and one ASCII character. If your file had 62 entries, Excel would show a ">". Now the next 4 bytes holds the length of the card ID. Since all the card ID's are 5 characters and the vpl file stores them as unicode which uses 2 bytes per character this will hold the value 10 which Excel will interpret as 3 null charcates followed by a Line Feed. Excel interprest the Line Feed as a Line Feed and starts a new line. Then next 10 bytes are interpreted by Excel as 5 pairs of null characters each followed by an ASCII character. Excel will display the ASCII characters which are the card ID and probably ignores the nulls. This repeats for every additional card ID. If a clip ID is present, it will be more than 10 bytes long so Excel will not "see" a line feed and will not start a new line.

When you save the Excel file as a text file, Excel will insert a LF and a Carriage Return caracter at the end of each line. iStripper will not be able to handle that. Also Excel may ignore all those null characters which must be present in the vpl file for iStripper to read it correctly.

In other words, your ability to open a .vpl file in Excel is a pure accident based on the fact that card ID's in Unicode are 10 bytes long.

The reason you can't modify a vpl file in notepade is the same reason Excel doesn't really work. In the case of notepad, it may be able to handle the unicode format, but the extra binary data will not be handled correctly and the binary 10's will probably be interpreted as line feeds.

It would be possible (and quite easy) to invert the Visual BASIC code I wrote so that you could create or modify and save a vpl file from Excel that would work with iStripper. In fact it would be possible to write a program that would display a list of all your cards with model name and card name and let you check off the ones you wanted in a playlist and then generate that playlist.
Wintergreen
Desde en Mar 2013

35 posts
June 28, 2016
Here is an item for my wishlish... I wish that iStripper could export my collection as a comma separated value file. Excel and other programs can import a csv file. The csv file can also be used by many scripting languages.

But Totem has higher priority issues to resolve right now. This particular wish can wait.
Dorsai6
Desde en Apr 2013

1033 posts
June 28, 2016
@Wintergreen,

If you have a Macintosh, I have what you want. I have an AppleScript that parses the models.lst file which contains all you collection information and generates two tab delimited files. One contains one row per card and includes all kinds of details about each card. The other contains one row per clip and contrains details about each clip. I then import those files into Excel to give myself a full inventory of my collection.

I'm willing to share my source code, but converting from AppleScript to another languge would be a major undertaking. The attached screen shot if of the first few lines of the clip inventory spreadsheet.
JoaXim
Desde en Dec 2007

70 posts
June 28, 2016 (edited)
@Dorsai6,
I think that you have a good explanation of this result with Excel. In fact you can see that the first cell of Excel has some kinki characters due the translation of the first part of the vpl file, as you can see. And no, I have not tried single clips. In fact, my vpl files are the initial plf files which included only the whole cards reference.

And yes, my intention is to advance from your VB code in managing vpl and names.xlm files in order to improve my skills in this area and generating my own playlists. I think that within two or three weeks I'll be able to devote some time to it.

By the way, I used your code and it runs perfectly. Thanks for your help.

Dorsai6
Desde en Apr 2013

1033 posts
June 28, 2016
A Concept For Managing and Generating Playlists

For those who are interested, I've been thinking about how I would inventory, manage and create iStripper Playlists. I've built some of the pieces on my Mac, but I'm going to describe how I would do it in Windows.

My prefered tool would be Microsoft Access. A database feels like the best way to organize the data. A somewhat simpler version could be built using Excel.

The first component is a tool for tagging clips. I've built a tool that captures the identity of the currently playing clip (only the "first" clip in small mode) and lets me add comma delimited tags of my choice. This data is saved to a tab delimited file. My tool reads the Mac iStripper preference file. The windows version would need to read the registry.

The next tool (not yet built) will load the names.xml file into a CARDS database table. One row per card.

The next tool (already built) will load all the card and clip data from the models.lst file into three database tables: CARDS, CLIPS and CARD-CLIPS.

The next tool (not yet built) will convert the tagged clips data into three database tables TAGS, CLIP-TAGS, and CARD-TAGS. If the same clip is tagged more than once, the tags will be merged. A tag beginning with an * will be treated as a card-level tag.

The next tool (not yet built) will load all my playlists into three more database tables PLAYLISTS, PLAYLIST-CARDS, and PLAYLIST-CLIPS.

The last tool will let me search all my cards and clips and designate which ones I want to use in a new playlist. It would search based on all the information found in the models.lst file plus the tags I've added. It will let me set the order in which the cards and clips appear in the playlist so I can create shows that will play in the sequence I desire. This tool will export .vpl files.

This can all be done using Visual BASIC but the user interface would be primitive.

In Excel the UI will be even more primitive, but can me made to work. Essentially I'd load the complete list of cards from the names.xml file into a spreadsheet and then add sequence number in a new column for those cards I want to include in a playlist. It would only work one playlist at a time.

A more advance Excel tool could load all playlists into a single inventory spreadsheet with one card per row and one playlist per column. Clips would be harder to handle.
DrDoom9
Desde en Dec 2008

226 posts
June 28, 2016
I am slowly getting used to the new playlist feature in iStripper.
If I deactivate all cards and then load a playlist, the cards in the playlist are played sequentially on the desktop, even though those cards are, theoretically, de-activated.
But when I go into fullscreen mode, I only get ONE girl - not the whole playlist.

When I clear all the playlist and Next boxes and ONLY activate all the cards from 1 girl, I get the same girl in different outfits in my fullscreens with multiple clipsprites.
This is a feature I wanted about 2 years ago when I first got into fullscreen, so it is a GOOD THING about iStripper!!!

However, I would really like a method of activating/deactivating cards in the same manner as in VG (i.e. via a simple text file) for 2 reasons:
1. I could then activate all my favourite cards by loading a text file. My favourites are not always selectable via the filters tab (e.g. all my 10-rated cards)
2. Fullscreen would work properly on the activated cards where it fails to get past the first girl on a .vpl playlist

This could be done by allowing a 'Load Activation file' feature from the Filters tab, quite separate from the playlist feature.
DrDoom9
Desde en Dec 2008

226 posts
June 28, 2016
And another thing ...
I have 2 cards of Miss Roxxx, who has withdrawn her acts from VG/iStripper.
These 2 cards come up a lot in playlists unless one explicity filters out the category 'unknown'
Wintergreen
Desde en Mar 2013

35 posts
June 29, 2016
@Dorsai6,
I have a Windows 10 system. And while I have Excel, I do not have Access. There is no problem with a Excel spreadsheet that has a few thousand lines of data. I have created several spreadsheets of that size. And I am not looking for close integration with Excel. A csv file would do everything I want and it would also help people who use other tools like Open Office and a csv file would be useful for folks who write home-brew stuff. Thanks for the offer though. Go ahead and share your code anyway. It might help someone.
spiderman1804
Desde en Feb 2008

439 posts
June 29, 2016
@DrDoom
I hope the informations in the picture will help you.

Categories with two words are writing with the underscore.
Example: "high heels" are writing as "high_heels"
Dorsai6
Desde en Apr 2013

1033 posts
June 29, 2016
A csv file would do everything I want and it would also help people who use other tools like Open Office and a csv file would be useful for folks who write home-brew stuff.
You are right. It would be far easier for Totem to provide the ability to export My Collection data to a csv file than it was for me to decode and unpack the models.lst file. Once the data is in the form of a csv file people could do whatever they wish with it. However, I don't think that Totem would consider this to be a high priority new capability for iStripper. Since I already have that capability, I'm not very bothered.

If anyone is interested in my code they should send me a private message with an email address. The source code is 207 KB, but the file format is not one supported by this forum's software.

JoaXim
Desde en Dec 2007

70 posts
June 29, 2016
@Dorsai6

You have developed a nice VB code to read vpl files and you say that it is possible to make a “reverse” VB code that would allow to write vpl files. It is a clear concept and I tried to do it. The load routine is easy to reverse: instead of reading a binary file you must write a binary file using the same sequence of inputs/outputs.

But now you must convert ordinary text into Unicode text and you should revert the “get_long” and the “get_unicode_string” functions into some “put_long” and “put_unicode_string” and I am unable to do it. Maybe you could provide these reverse functions

Thank you for your help
Dorsai6
Desde en Apr 2013

1033 posts
June 29, 2016
@JoaXim,

OK. The next message is Visual BASIC code that must be executed inside an Excel spreadsheet.

The subroutine Load_names will load the entire names.xml file into the spreadsheet. This includes all cards, not just those in your collection.

The subroutine Create_playlist will create a playlist that includes those cards that have something (text, number, date) in column D. The order in which the cards appear in the playlist will be the top-down order of the cards in the spreadsheet at the time you run the subroutine. If you want a particular order, you can organize the spreadsheet accordingly. A more complicated verision would allow you to enter sequence numbers into column D.

WARNING: I've used the obsolete PRINT command because I'm not sure the Visual Studio commands will work on my Mac. This PRINT command inserts a carriage return at the end of each line. Because of this, I had to assemble the entire file as a single text string. iStripper seems to ignore the extra character at the end of the file. Because I'm building everthing into a single text string the subroutine probably can not create a picklist of more than 32,767 bytes.
Dorsai6
Desde en Apr 2013

1033 posts
June 29, 2016
RATS!!!!

There is something about my Visual BASIC souce code that this web site does not like. It won't let me load it.

The attached image shows all the code. Send me an email address by private message and I'll send you the Excel workbook that contains all this code.
JoaXim
Desde en Dec 2007

70 posts
June 29, 2016 (edited)
I have sent you the private message
In the picture I see how it works according to your advices
I think that now I can go forward . Thank you @Dorsai6
DrDoom9
Desde en Dec 2008

226 posts
June 30, 2016
@spiderman1804
Thanks for showing me your text file regarding card properties.
I have a large Excel spreadsheet from which I can extract all the cards with the properties I need.

The problem is how to get cards activated/deactivated for fullscreen.

What happens with fullscreen containing more than 1 clip is this: the first clip in the scene is taken from the playlist, the rest are taken randomly from the active cards.
So if one deactivates all cards, but loads a playlist with, say, Jenni Gregg's 5 cards, the fullscreen only plays the first Jenni Gregg card; no more.
If one activates only Jenni Gregg's 5 cards, the fullscreen plays them all.
DrDoom9
Desde en Dec 2008

226 posts
June 30, 2016
@Dorsai6
I am a novice with VBA and Excel, but I have got a few functions to work in the past.
I tried to put Load_playlist() into MS Excel 2016 and it failed on the statement
input_data = Input(4, #1)

Looking up the Input function on MS site, it seems to apply to MS Access only.
I do have MS Access, but I have never used it.

Even though I am a Windows 10 user, can you suggest what I might do to get Load_playlist to work please?
spiderman1804
Desde en Feb 2008

439 posts
June 30, 2016 (edited)
Example Full screen Scene: Paris Penthouse Club No Table - Multi
with three cards

In this version (1.2.114) I'm not using the playist. Any cards that a will see are activated in the card list. See picture.

When only one or two girls are to activated is not a problem. But when you will activated any card in playlist with 100 cards and more then is this a problem.
How you can read a playlist file can see in Dorsai6 posting.

In iStripper deactivated any card. Use the Search box with a special serch string to display the cards and activated this cards.

To search for the cards of Maggie you can also use this search string:
a0029|a0030|a0031|a0032|a0033|a0034

In the search string can see any CardID sepearted with the pipe symbol. There is no space in this string.
I think that is possible in Excel to make this string. I'm not sure where the max of cards is in Excel.
In iStripper can use this type of string (complete CardID visible) with more as 2000 cards.

The same search can use with a short string: a00(29|3[0-4])
Dorsai6
Desde en Apr 2013

1033 posts
June 30, 2016
@DrDoom9,

I am puzzled. That function should work in Excel. It does on my Mac and @JoaXim reports it works in Windows, but I don't know what version of Windows or Excel he uses. It is possible that Excel 2016 no longer supports this function, but that seems unlikely.

This is the reference I used: https://msdn.microsoft.com/en-us/library/office/gg251539.aspx

I do very little programming in Windows, so I can't offer much help. Do you know what error occurred at that line of code? Did it happen at the first occurrance or after the playlist was nearly loaded? Do you have read access to the file you were trying to read?
Dorsai6
Desde en Apr 2013

1033 posts
June 30, 2016
@DrDoom9,

I just thought of something: Microsoft keeps increasing the security constraints of their products. Visual BASIC has been a vulnerability for hackers in the past. It is possible that your verison of Excel has security features that must be disabled for that code to work. I do not have that version of Exel so I can't tell you if that is true and I can't tell you where any override might be located.
Dorsai6
Desde en Apr 2013

1033 posts
June 30, 2016 (edited)
Looking at previous messages, I see that @JoaXim uses Windows 10 and Excel 2013. I also see that @spiderman1804 userProfile.php?usLogin=spiderman1804 reports the code works in his version of Excel.

No estás autorizado a participar aun

Como usuario gratuito iStripper, no se te permite responder a un tema en el foro o crear un nuevo tema
Pero podrás acceder a las categorías y conceptos básicos y ponerte en contacto con nuestra comunidad.!