|
-
July 27, 2025, 03:17:30 am
- Welcome, Guest
News:Official site launch very soon, hurrah!
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.
Messages - Dakusan
Pages: 1 ... 4 5 [6] 7 8 ... 38
76
« on: June 22, 2016, 09:08:00 pm »
You need to either be running on the computer that has the plex server installed, or be able to access plex's config directory directly. If it is not running on the same computer, let me know and I'll elaborate.
---
Go to your current directory with your playlist file. Run: PlexPlaylistImporter YourPlayListFileName.m3u PlayListNameYouWantInPlex E.x.: PlexPlaylistImporter Disc1.m3u "They Might Be Giants"
77
« on: June 18, 2016, 12:17:30 am »
OK, I merged in another authors branch to fix the linux absolute path problems. I fixed the UTF8 bom problem, so you don't have to worry about that anymore either. I also added cygwin compatibility. I just tested with a utf8 m3u file and file names with Japanese characters and it imported fine (had to set up special test cases). Are you absolutely sure your file is utf8? Assuming your command line is in utf8, when the error is shown it should have the proper filename at the end of the error. I also just tried to save a list from an older version of winamp and it just put question marks for any of the japanese characters ~.~ I also just did a massive import of all my music into plex (have been rebuilding my library). And interestingly enough, 0 of my 100+ files that had japanese characters even imported into plex!  So are you also sure those files are actually in Plex? There have been weird errors in the past regarding playlist and file lengths in plex. One example is that if your playlist has more than 150 entries, plex no longer recognizes it. The person on my forum that discovered it submitted a bug report to plex. Not sure if it was ever resolved. But anywho, the playtimes are grabbed from what is already in the plex database, so it is possible it had not recorded them yet at the time you did your playlist import. Or perhaps they are storing additional information about the tracks elsewhere and not updating the main table. I didn't try very hard on that part, as I knew it would auto correct. Once the file is in the plex server playlist, my program no longer has any control over its values. The error that you are showing regarding the charset looks like it might be b/c you are not in utf8 mode in your tty console. Also, the character you mentioned, c3, is "Ã", which is interesting. I think I see that one a lot when there are encoding problems. If the board lets you, any chance you can post your playlist file with just that one song for me to inspect. And western european character set would definitely not work with the importer. UTF8 is essential. Also, have you been running via the executable, or the python scripts? If the latter, I have the newest source up on github @ https://github.com/dakusan/PlexPlaylistImporter/ . If you are unable to run from source, I'll get an executable compiled for you (its a minor PITA). Not wanting to release a new version on the site until your problem is resolved
78
« on: June 17, 2016, 10:05:54 pm »
OK, my forum is acting super crazy right now and not showing your last post >.<; here it is again, and I am working on the stuff now. Skipper42: Well, I solved (kindasorta) the basic problem of BOM inclusion by installing EditPad Lite (freeware, unlike the Pro version), which permits me to create (Options menu) an M3U file type and specify UTF-8 and no BOM, and to replace the existing BOM with none if found. I can then open an .m3u created in another app (e.g., MediaMonkey, mp3tag, Notepad) and resave it with no BOM. Unless there are character codes beyond the basic alphabet (see below for a description of this newly discovered problem), the .m3u will then import successfully... ...kindasorta. After the first two successful playlist imports, PMS stopped displaying the total duration (length) of the playlist, reporting only 'x Items' where x is the track count. Further, when the playlist is opened in Plex, all the track lengths are shown as 0:00. A quick check with mp3tag showed the metadata for length as indeed being included in the .mp3 file, and when one browses to the album in Plex, it, too, has the track length correctly shown. In both cases -- playlist or music browse -- Plex plays the track correctly. Interestingly, once a track has been played from the playlist, suddenly PMS finds its brain and correctly displays the track length on the Playlist page. There's no Refresh opportunity in the Playlist dialogue to force this otherwise. After the track lengths are displayed correctly once, they're displayed correctly henceforth, along with the overall playlist length on the main Playlist browse page. I noticed that it took a while for the data to propagate there, however. Even after playing all tracks in a 1:46 duration playlist (duration doesn't matter, simply starting each track is sufficient to update the track length display after a few seconds), the initial value shown for playlist length upon return to the main Playlist page was 20 minutes. Returning to the track listing for the playlist showed that indeed all the track lengths were still there, and on return up to the main Playlist page, suddenly the duration was the correct 1:46 value. I'm unable from where I sit to determine whether this is a PMS bug or a PPI problem; perhaps there's a missing commit in the PPI SQL update query for the track metadata records, and absent some refresh mechanism, takes PMS a while to update itself? Now on to the character set/codespace problem. If the path (artist, album) or track filename contain other than basic alphanumeric characters thru ~ (code < 128 or 007F), then you run into problems like the following, where PPI can't find the track .mp3 to get its metadata: Actual mp3 file record in m3u playlist:<path>\Music Library\Saint-Saëns\Violin Concerto No. 3\02 Romance for violin & orchestra in C major, Op 48.mp3 PPI import error:ListImporter 'Winamp playlist': Cannot find file listed in playlist (must be relative to the playlist):<path>\Music Library\Saint-Sa\xc3«ns\Violin Concerto No. 3\02 Romance for violin & orchestra in C major, Op 48.mp3 In this case, the e-umlaut (ë) has a decimal character code of 235 (+00EB). Doesn't matter whether <path> in this example is relative ("dot notation") or absolute (<drive letter>:<folder path>). Just FYI - the error message always says "relative" even if absolute path addressing is used (likely an artifact of your absolute addressing quick fix). Since PMS correctly renders the special characters and correctly finds and plays the track, and since other apps (MediaMonkey, mp3tag, Notepad, EditPad Lite) correctly find/render/play the .mp3 file, this flaw appears to be inside PPI. I checked and it also doesn't matter whether the character set used is UTF-8 or Western European. This would seem thus that PPI's character set issues are larger than just ignoring the UTF-8 BOM in an .m3u file. I know that's not good news, but do hope there's enough info here for you to diagnose and correct the bug; I've made enough progress with a handful of successful playlist imports to be excited about the prospect of overall success!
79
« on: June 17, 2016, 10:03:25 pm »
OK, my forum has been randomly deleting posts  I just recovered this from the trashbin. Pierre: it requires python3. I will be making a minor change soon to verify it uses that. ulle: Playlists are not user based, they are library based. If you mean you want to use a non-admin user to import a playlist, it is possible as long as they have access to the plex sqllite3 file.
80
« on: June 16, 2016, 07:13:05 pm »
Sorry for taking so long on this, should be able to look into this and update the software tomorrow or the day after.
81
« on: June 11, 2016, 10:58:51 pm »
Whatever program you used to save the playlist file as UTF8 is adding a BOM (byte order marker) to the beginning of the file, specifically, the utf8 BOM " ". It needs to not be in the file. You can generally set a setting in your text editor to not include it. I'll see if I can't make an update soon to bypass this problem.
82
« on: June 09, 2016, 04:00:50 pm »
Awesome! Glad you got it working! Sorry I couldn't have been more help on fixing it. Busy busy.
Very interesting @ the proc architecture. I had never even thought about seeing what arch the files compiled as. Though x86 makes sense for the extended compatibility, which for a project like this, is appropriate. Will definitely keep it in mind for the future
83
« on: June 07, 2016, 03:33:27 pm »
Just to make sure... you do have the sqlite3.dll in the same directory as the PlexPlaylistImporter.exe, right? Yeah, my next guess was going to be that it was choosing the wrong dll. The article I linked says: - If a DLL with the same module name is already loaded in memory, the system uses the loaded DLL, no matter which directory it is in. The system does not search for the DLL.
- If the DLL is on the list of known DLLs for the version of Windows on which the application is running, the system uses its copy of the known DLL (and the known DLL's dependent DLLs, if any). The system does not search for the DLL. For a list of known DLLs on the current system, see the following registry key: HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\KnownDLLs.
So it is most likely the first one. Is it possible for you to temporarily unload the program that is using it? You can also search for DLL usage handles by using Process Explorer. In the find menu there is a "Find Handle or DLL... (Ctrl+F)" option. If you are unable to stop the other process, you can try manually replacing the .dll in its folder, but that is risky
84
« on: June 07, 2016, 10:31:45 am »
Find all directories that do not contain subdirectories
find -type d -exec sh -c 'test `find "{}/" -mindepth 1 -type d | wc -l` -eq 0' ';' -print
85
« on: June 07, 2016, 08:42:25 am »
From an internet search "This error is happening because of [your] build of SQLite does not include the FTS modules." So I'd guess that either your sqlite3 libs, or python sqlite3 libs need to be updated. I really need to get a windows executable compiled for it... You might want to try using the provided executable instead. It is at the top of the project page under "Downloads: Binary". [Edit] After rereading your message... are you already using the executable I provided?
86
« on: May 09, 2016, 04:37:17 pm »
@Pierre: Are you sure you are running Python3 and not Python2? @ulle: I'm not exactly sure what you are trying to ask. Any user could potentially use the software as long as they meet 3 conditions: - They have python 3 installed (and any dependent libraries)
- They have access to the playlist and the files inside the playlist
- They have access to write to the plex database file
87
« on: April 26, 2016, 03:45:08 am »
Just found out that adding "winsymlinks:nativestrict" to your CYGWIN variable in bash makes all internal symlinks use actual windows NTFS symlinks. This is a MUCH better solution, as it will then support all commands that work with symlinks, including rsync.
88
« on: February 14, 2016, 11:03:27 am »
I had the need for a project recently to have a database list of countries and currencies. I ended up pulling the currency list from wikipedia and the country list from the stage.gov website. You can download the SQL here, or copy from below. Do note there are NULLs in some of the places where data was unavailable. DROP TABLE IF EXISTS Countries; CREATE TABLE Countries ( ID tinyint(3) unsigned NOT NULL AUTO_INCREMENT, FIPS char(2) CHARACTER SET ascii COLLATE ascii_bin NOT NULL, Name varchar(35) NOT NULL, LongName varchar(55) NOT NULL, PRIMARY KEY (ID), UNIQUE KEY FIPS (FIPS), UNIQUE KEY Name (Name) ) ENGINE=InnoDB DEFAULT CHARSET=utf8;
INSERT INTO Countries (FIPS, Name, LongName) VALUES ('AF','Afghanistan','Islamic Republic of Afghanistan'), ('AL','Albania','Republic of Albania'), ('AG','Algeria','People’s Democratic Republic of Algeria'), ('AN','Andorra','Principality of Andorra'), ('AO','Angola','Republic of Angola'), ('AC','Antigua and Barbuda','Antiqua and Barbuda'), ('AR','Argentina','Argentine Republic'), ('AM','Armenia','Republic of Armenia'), ('AS','Australia','Commonwealth of Australia'), ('AU','Austria','Republic of Austria'), ('AJ','Azerbaijan','Republic of Azerbaijan'), ('BF','Bahamas, The','Commonwealth of The Bahamas'), ('BA','Bahrain','Kingdom of Bahrain'), ('BG','Bangladesh','People’s Republic of Bangladesh'), ('BB','Barbados','Barbados'), ('BO','Belarus','Republic of Belarus'), ('BE','Belgium','Kingdom of Belgium'), ('BH','Belize','Belize'), ('BN','Benin','Republic of Benin'), ('BT','Bhutan','Kingdom of Bhutan'), ('BL','Bolivia','Plurinational State of Bolivia'), ('BK','Bosnia and Herzegovina','Bosnia and Herzegovina'), ('BC','Botswana','Republic of Botswana'), ('BR','Brazil','Federative Republic of Brazil'), ('BX','Brunei','Brunei Darussalam'), ('BU','Bulgaria','Republic of Bulgaria'), ('UV','Burkina Faso','Burkina Faso'), ('BM','Burma','Union of Burma'), ('BY','Burundi','Republic of Burundi'), ('CV','Cabo Verde','Republic of Cabo Verde'), ('CB','Cambodia','Kingdom of Cambodia'), ('CM','Cameroon','Republic of Cameroon'), ('CA','Canada','Canada'), ('CT','Central African Republic','Central African Republic'), ('CD','Chad','Republic of Chad'), ('CI','Chile','Republic of Chile'), ('CH','China','People’s Republic of China'), ('CO','Colombia','Republic of Colombia'), ('CN','Comoros','Union of the Comoros'), ('CF','Congo (Brazzaville)','Republic of the Congo'), ('CG','Congo (Kinshasa)','Democratic Republic of the Congo'), ('CS','Costa Rica','Republic of Costa Rica'), ('IV','Côte d’Ivoire','Republic of Côte d’Ivoire'), ('HR','Croatia','Republic of Croatia'), ('CU','Cuba','Republic of Cuba'), ('CY','Cyprus','Republic of Cyprus'), ('EZ','Czech Republic','Czech Republic'), ('DA','Denmark','Kingdom of Denmark'), ('DJ','Djibouti','Republic of Djibouti'), ('DO','Dominica','Commonwealth of Dominica'), ('DR','Dominican Republic','Dominican Republic'), ('EC','Ecuador','Republic of Ecuador'), ('EG','Egypt','Arab Republic of Egypt'), ('ES','El Salvador','Republic of El Salvador'), ('EK','Equatorial Guinea','Republic of Equatorial Guinea'), ('ER','Eritrea','State of Eritrea'), ('EN','Estonia','Republic of Estonia'), ('ET','Ethiopia','Federal Democratic Republic of Ethiopia'), ('FJ','Fiji','Republic of Fiji'), ('FI','Finland','Republic of Finland'), ('FR','France','French Republic'), ('GB','Gabon','Gabonese Republic'), ('GA','Gambia, The','Republic of The Gambia'), ('GG','Georgia','Georgia'), ('GM','Germany','Federal Republic of Germany'), ('GH','Ghana','Republic of Ghana'), ('GR','Greece','Hellenic Republic'), ('GJ','Grenada','Grenada'), ('GT','Guatemala','Republic of Guatemala'), ('GV','Guinea','Republic of Guinea'), ('PU','Guinea-Bissau','Republic of Guinea-Bissau'), ('GY','Guyana','Co-operative Republic of Guyana'), ('HA','Haiti','Republic of Haiti'), ('VT','Holy See','Holy See'), ('HO','Honduras','Republic of Honduras'), ('HU','Hungary','Hungary'), ('IC','Iceland','Republic of Iceland'), ('IN','India','Republic of India'), ('ID','Indonesia','Republic of Indonesia'), ('IR','Iran','Islamic Republic of Iran'), ('IZ','Iraq','Republic of Iraq'), ('EI','Ireland','Ireland'), ('IS','Israel','State of Israel'), ('IT','Italy','Italian Republic'), ('JM','Jamaica','Jamaica'), ('JA','Japan','Japan'), ('JO','Jordan','Hashemite Kingdom of Jordan'), ('KZ','Kazakhstan','Republic of Kazakhstan'), ('KE','Kenya','Republic of Kenya'), ('KR','Kiribati','Republic of Kiribati'), ('KN','Korea, North','Democratic People’s Republic of Korea'), ('KS','Korea, South','Republic of Korea'), ('KV','Kosovo','Republic of Kosovo'), ('KU','Kuwait','State of Kuwait'), ('KG','Kyrgyzstan','Kyrgyz Republic'), ('LA','Laos','Lao People’s Democratic Republic'), ('LG','Latvia','Republic of Latvia'), ('LE','Lebanon','Lebanese Republic'), ('LT','Lesotho','Kingdom of Lesotho'), ('LI','Liberia','Republic of Liberia'), ('LY','Libya','Libya'), ('LS','Liechtenstein','Principality of Liechtenstein'), ('LH','Lithuania','Republic of Lithuania'), ('LU','Luxembourg','Grand Duchy of Luxembourg'), ('MK','Macedonia','Republic of Macedonia'), ('MA','Madagascar','Republic of Madagascar'), ('MI','Malawi','Republic of Malawi'), ('MY','Malaysia','Malaysia'), ('MV','Maldives','Republic of Maldives'), ('ML','Mali','Republic of Mali'), ('MT','Malta','Republic of Malta'), ('RM','Marshall Islands','Republic of the Marshall Islands'), ('MR','Mauritania','Islamic Republic of Mauritania'), ('MP','Mauritius','Republic of Mauritius'), ('MX','Mexico','United Mexican States'), ('FM','Micronesia, Federated States of','Federated States of Micronesia'), ('MD','Moldova','Republic of Moldova'), ('MN','Monaco','Principality of Monaco'), ('MG','Mongolia','Mongolia'), ('MJ','Montenegro','Montenegro'), ('MO','Morocco','Kingdom of Morocco'), ('MZ','Mozambique','Republic of Mozambique'), ('WA','Namibia','Republic of Namibia'), ('NR','Nauru','Republic of Nauru'), ('NP','Nepal','Federal Democratic Republic of Nepal'), ('NL','Netherlands','Kingdom of the Netherlands'), ('NZ','New Zealand','New Zealand'), ('NU','Nicaragua','Republic of Nicaragua'), ('NG','Niger','Republic of Niger'), ('NI','Nigeria','Federal Republic of Nigeria'), ('NO','Norway','Kingdom of Norway'), ('MU','Oman','Sultanate of Oman'), ('PK','Pakistan','Islamic Republic of Pakistan'), ('PS','Palau','Republic of Palau'), ('PM','Panama','Republic of Panama'), ('PP','Papua New Guinea','Independent State of Papua New Guinea'), ('PA','Paraguay','Republic of Paraguay'), ('PE','Peru','Republic of Peru'), ('RP','Philippines','Republic of the Philippines'), ('PL','Poland','Republic of Poland'), ('PO','Portugal','Portuguese Republic'), ('QA','Qatar','State of Qatar'), ('RO','Romania','Romania'), ('RS','Russia','Russian Federation'), ('RW','Rwanda','Republic of Rwanda'), ('SC','Saint Kitts and Nevis','Federation of Saint Kitts and Nevis'), ('ST','Saint Lucia','Saint Lucia'), ('VC','Saint Vincent and the Grenadines','Saint Vincent and the Grenadines'), ('WS','Samoa','Independent State of Samoa'), ('SM','San Marino','Republic of San Marino'), ('TP','Sao Tome and Principe','Democratic Republic of Sao Tome and Principe'), ('SA','Saudi Arabia','Kingdom of Saudi Arabia'), ('SG','Senegal','Republic of Senegal'), ('RI','Serbia','Republic of Serbia'), ('SE','Seychelles','Republic of Seychelles'), ('SL','Sierra Leone','Republic of Sierra Leone'), ('SN','Singapore','Republic of Singapore'), ('LO','Slovakia','Slovak Republic'), ('SI','Slovenia','Republic of Slovenia'), ('BP','Solomon Islands','Solomon Islands'), ('SO','Somalia','Federal Republic of Somalia'), ('SF','South Africa','Republic of South Africa'), ('OD','South Sudan','Republic of South Sudan'), ('SP','Spain','Kingdom of Spain'), ('CE','Sri Lanka','Democratic Socialist Republic of Sri Lanka'), ('SU','Sudan','Republic of the Sudan'), ('NS','Suriname','Republic of Suriname'), ('WZ','Swaziland','Kingdom of Swaziland'), ('SW','Sweden','Kingdom of Sweden'), ('SZ','Switzerland','Swiss Confederation'), ('SY','Syria','Syrian Arab Republic'), ('TI','Tajikistan','Republic of Tajikistan'), ('TZ','Tanzania','United Republic of Tanzania'), ('TH','Thailand','Kingdom of Thailand'), ('TT','Timor-Leste','Democratic Republic of Timor-Leste'), ('TO','Togo','Togolese Republic'), ('TN','Tonga','Kingdom of Tonga'), ('TD','Trinidad and Tobago','Republic of Trinidad and Tobago'), ('TS','Tunisia','Republic of Tunisia'), ('TU','Turkey','Republic of Turkey'), ('TX','Turkmenistan','Turkmenistan'), ('TV','Tuvalu','Tuvalu'), ('UG','Uganda','Republic of Uganda'), ('UP','Ukraine','Ukraine'), ('AE','United Arab Emirates','United Arab Emirates'), ('UK','United Kingdom','United Kingdom of Great Britain and Northern Ireland'), ('US','United States','United States of America'), ('UY','Uruguay','Oriental Republic of Uruguay'), ('UZ','Uzbekistan','Republic of Uzbekistan'), ('NH','Vanuatu','Republic of Vanuatu'), ('VE','Venezuela','Bolivarian Republic of Venezuela'), ('VM','Vietnam','Socialist Republic of Vietnam'), ('YM','Yemen','Republic of Yemen'), ('ZA','Zambia','Republic of Zambia'), ('ZI','Zimbabwe','Republic of Zimbabwe');
DROP TABLE IF EXISTS Currencies; CREATE TABLE Currencies ( ID tinyint(3) unsigned NOT NULL AUTO_INCREMENT, ISOCode char(3) CHARACTER SET ascii COLLATE ascii_bin DEFAULT NULL, NumberToBasic smallint(5) unsigned DEFAULT NULL, Symbol varchar(6) DEFAULT NULL, Name varchar(55) DEFAULT NULL, PRIMARY KEY (ID), UNIQUE KEY ISOCode (ISOCode), UNIQUE KEY Name (Name) ) ENGINE=InnoDB DEFAULT CHARSET=utf8;
INSERT INTO Currencies (ISOCode, NumberToBasic, Symbol, Name) VALUES ('AFN',100,'؋','Afghan afghani'), ('ALL',100,'L','Albanian lek'), (NULL,100,'£','Alderney pound'), ('DZD',100,'د.ج','Algerian dinar'), ('AOA',100,'Kz','Angolan kwanza'), ('ARS',100,'$','Argentine peso'), ('AMD',100,'֏','Armenian dram'), ('AWG',100,'ƒ','Aruban florin'), (NULL,100,'£','Ascension pound'), ('AUD',100,'$','Australian dollar'), ('AZN',100,'₼','Azerbaijani manat'), ('BSD',100,'$','Bahamian dollar'), ('BHD',1000,'.د.ب','Bahraini dinar'), ('BDT',100,'৳','Bangladeshi taka'), ('BBD',100,'$','Barbadian dollar'), ('BYR',100,'Br','Belarusian ruble'), ('BZD',100,'$','Belize dollar'), ('BMD',100,'$','Bermudian dollar'), ('BTN',100,'Nu.','Bhutanese ngultrum'), ('BOB',100,'Bs.','Bolivian boliviano'), ('BAM',100,'KM','Bosnia and Herzegovina convertible mark'), ('BWP',100,'P','Botswana pula'), ('BRL',100,'R$','Brazilian real'), ('GBP',100,'£','British pound'), (NULL,100,'$','British Virgin Islands dollar'), ('BND',100,'$','Brunei dollar'), ('BGN',100,'лв','Bulgarian lev'), ('MMK',100,'Ks','Burmese kyat'), ('BIF',100,'Fr','Burundian franc'), ('KHR',100,'៛','Cambodian riel'), ('CAD',100,'$','Canadian dollar'), ('CVE',100,'$','Cape Verdean escudo'), ('KYD',100,'$','Cayman Islands dollar'), ('XAF',100,'Fr','Central African CFA franc'), ('XPF',100,'Fr','CFP franc'), ('CLP',100,'$','Chilean peso'), ('CNY',100,'¥','Chinese yuan'), ('COP',100,'$','Colombian peso'), ('KMF',100,'Fr','Comorian franc'), ('CDF',100,'Fr','Congolese franc'), (NULL,100,'$','Cook Islands dollar'), ('CRC',100,'₡','Costa Rican colón'), ('HRK',100,'kn','Croatian kuna'), ('CUC',100,'$','Cuban convertible peso'), ('CUP',100,'$','Cuban peso'), ('CZK',100,'Kč','Czech koruna'), ('DKK',100,'kr','Danish krone'), ('DJF',100,'Fr','Djiboutian franc'), ('DOP',100,'$','Dominican peso'), ('XCD',100,'$','East Caribbean dollar'), ('EGP',100,'£','Egyptian pound'), ('ERN',100,'Nfk','Eritrean nakfa'), ('ETB',100,'Br','Ethiopian birr'), ('EUR',100,'€','Euro'), ('FKP',100,'£','Falkland Islands pound'), (NULL,100,'kr','Faroese króna'), ('FJD',100,'$','Fijian dollar'), ('GMD',100,'D','Gambian dalasi'), ('GEL',100,'ლ','Georgian lari'), ('GHS',100,'₵','Ghana cedi'), ('GIP',100,'£','Gibraltar pound'), ('GTQ',100,'Q','Guatemalan quetzal'), ('GGP',100,'£','Guernsey pound'), ('GNF',100,'Fr','Guinean franc'), ('GYD',100,'$','Guyanese dollar'), ('HTG',100,'G','Haitian gourde'), ('HNL',100,'L','Honduran lempira'), ('HKD',100,'$','Hong Kong dollar'), ('HUF',100,'Ft','Hungarian forint'), ('ISK',100,'kr','Icelandic króna'), ('INR',100,'₹','Indian rupee'), ('IDR',100,'Rp','Indonesian rupiah'), ('IRR',100,'﷼','Iranian rial'), ('IQD',1000,'ع.د','Iraqi dinar'), ('ILS',100,'₪','Israeli new shekel'), ('JMD',100,'$','Jamaican dollar'), ('JPY',100,'¥','Japanese yen'), ('JEP',100,'£','Jersey pound'), ('JOD',100,'د.ا','Jordanian dinar'), ('KZT',100,'₸','Kazakhstani tenge'), ('KES',100,'Sh','Kenyan shilling'), (NULL,100,'$','Kiribati dollar'), ('KWD',1000,'د.ك','Kuwaiti dinar'), ('KGS',100,'лв','Kyrgyzstani som'), ('LAK',100,'₭','Lao kip'), ('LBP',100,'ل.ل','Lebanese pound'), ('LSL',100,'L','Lesotho loti'), ('LRD',100,'$','Liberian dollar'), ('LYD',1000,'ل.د','Libyan dinar'), ('MOP',100,'P','Macanese pataca'), ('MKD',100,'ден','Macedonian denar'), ('MGA',5,'Ar','Malagasy ariary'), ('MWK',100,'MK','Malawian kwacha'), ('MYR',100,'RM','Malaysian ringgit'), ('MVR',100,'.ރ','Maldivian rufiyaa'), ('IMP',100,'£','Manx pound'), ('MRO',5,'UM','Mauritanian ouguiya'), ('MUR',100,'₨','Mauritian rupee'), ('MXN',100,'$','Mexican peso'), (NULL,100,'$','Micronesian dollar'), ('MDL',100,'L','Moldovan leu'), ('MNT',100,'₮','Mongolian tögrög'), ('MAD',100,'د. م.','Moroccan dirham'), ('MZN',100,'MT','Mozambican metical'), (NULL,100,'դր.','Nagorno-Karabakh dram'), ('NAD',100,'$','Namibian dollar'), (NULL,100,'$','Nauruan dollar'), ('NPR',100,'₨','Nepalese rupee'), ('ANG',100,'ƒ','Netherlands Antillean guilder'), ('TWD',100,'$','New Taiwan dollar'), ('NZD',100,'$','New Zealand dollar'), ('NIO',100,'C$','Nicaraguan córdoba'), ('NGN',100,'₦','Nigerian naira'), (NULL,100,'$','Niue dollar'), ('KPW',100,'₩','North Korean won'), ('NOK',100,'kr','Norwegian krone'), ('OMR',1000,'ر.ع.','Omani rial'), ('PKR',100,'₨','Pakistani rupee'), (NULL,100,'$','Palauan dollar'), ('PAB',100,'B/.','Panamanian balboa'), ('PGK',100,'K','Papua New Guinean kina'), ('PYG',100,'₲','Paraguayan guaraní'), ('PEN',100,'S/.','Peruvian nuevo sol'), ('PHP',100,'₱','Philippine peso'), (NULL,100,'$','Pitcairn Islands dollar'), ('PLN',100,'zł','Polish złoty'), ('QAR',100,'ر.ق','Qatari riyal'), ('RON',100,'lei','Romanian leu'), ('RUB',100,'₽','Russian ruble'), ('RWF',100,'Fr','Rwandan franc'), (NULL,100,'Ptas','Sahrawi peseta'), ('SHP',100,'£','Saint Helena pound'), ('WST',100,'T','Samoan tālā'), ('STD',100,'Db','São Tomé and Príncipe dobra'), ('SAR',100,'ر.س','Saudi riyal'), ('RSD',100,'дин.','Serbian dinar'), ('SCR',100,'₨','Seychellois rupee'), ('SLL',100,'Le','Sierra Leonean leone'), ('SGD',100,'$','Singapore dollar'), ('SBD',100,'$','Solomon Islands dollar'), ('SOS',100,'Sh','Somali shilling'), (NULL,100,'Sh','Somaliland shilling'), ('ZAR',100,'R','South African rand'), (NULL,100,'£','South Georgia and the South Sandwich Islands pound'), ('KRW',100,'₩','South Korean won'), ('SSP',100,'£','South Sudanese pound'), ('LKR',100,'රු','Sri Lankan rupee'), ('SDG',100,'ج.س.','Sudanese pound'), ('SRD',100,'$','Surinamese dollar'), ('SZL',100,'L','Swazi lilangeni'), ('SEK',100,'kr','Swedish krona'), ('CHF',100,'Fr','Swiss franc'), ('SYP',100,'£','Syrian pound'), ('TJS',100,'ЅМ','Tajikistani somoni'), ('TZS',100,'Sh','Tanzanian shilling'), ('THB',100,'฿','Thai baht'), ('TOP',100,'T$','Tongan paʻanga'), ('PRB',100,'р.','Transnistrian ruble'), ('TTD',100,'$','Trinidad and Tobago dollar'), (NULL,100,'£','Tristan da Cunha pound'), ('TND',1000,'د.ت','Tunisian dinar'), ('TRY',100,'₺','Turkish lira'), ('TMT',100,'m','Turkmenistan manat'), (NULL,100,'$','Tuvaluan dollar'), ('UGX',100,'Sh','Ugandan shilling'), ('UAH',100,'₴','Ukrainian hryvnia'), ('AED',100,'د.إ','United Arab Emirates dirham'), ('USD',100,'$','United States dollar'), ('UYU',100,'$','Uruguayan peso'), ('UZS',100,NULL,'Uzbekistani som'), ('VUV',NULL,'Vt','Vanuatu vatu'), ('VEF',100,'Bs F','Venezuelan bolívar'), ('VND',10,'₫','Vietnamese đồng'), ('XOF',100,'Fr','West African CFA franc'), ('YER',100,'﷼','Yemeni rial'), ('ZMW',100,'ZK','Zambian kwacha');
89
« on: February 08, 2016, 02:04:40 am »
90
« on: February 08, 2016, 12:52:16 am »
So somehow all of the file names in my Rammstein music directory, and some in my Daft Punk, had characters with diacritics replaced with an invalid character. I pasted one of such filenames into a hex editor to evaluate what the problem was. First, I should note that Windows encodes its filenames (and pretty much everything) in UTF16. Everything else in the world (mostly) has settled on UTF8, which is a much better encoding for many reasons. So during some file copy/conversion at some point in the directories’ lifetime, the file names had done a freakish (utf16*)(utf16->utf8) rename, or something to that extent. I had noticed that all I needed to do was to replace the first 2 bytes of the diacritic character with a different byte. Namely “EF 8x” to “Cx”, and the rest of the bytes for the character were fine. So if anyone ever needs it, here is the bash script. LANG=; IFS=$'\n' for i in `find -type f | grep -P '\xEF[\x80-\x8F]'`; do FROM="$i"; TO=$(echo "$i" | perl -pi -e 's/\xEF([\x80-\x8F])/pack("C", ord($1)+(0xC0-0x80))/e'); echo Renaming "'$FROM'" to "'$TO'" mv "$FROM" "$TO" done
I may need to expand the range beyond the x80-x8F range, but am unsure at this point. I only confirmed the range x82-x83.
Pages: 1 ... 4 5 [6] 7 8 ... 38
|
|