Skip to content
GitLab
Projects
Groups
Snippets
Help
Loading...
Help
What's new
7
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Sign in / Register
Toggle navigation
Open sidebar
Soomin Lee
VLC-iOS
Commits
2b9e36ff
Commit
2b9e36ff
authored
Jun 10, 2014
by
Felix Paul Kühne
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
web intf: expose collections with their actual sub-items
parent
2f4d4693
Changes
2
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
67 additions
and
20 deletions
+67
-20
Resources/web/style.css
Resources/web/style.css
+10
-4
Sources/VLCHTTPConnection.m
Sources/VLCHTTPConnection.m
+57
-16
No files found.
Resources/web/style.css
View file @
2b9e36ff
...
...
@@ -198,6 +198,9 @@ div.main.drop {
font-size
:
20px
;
line-height
:
50px
;
text-align
:
left
;
height
:
40px
;
padding
:
0
20px
;
position
:
relative
;
}
.downloads
a
{
line-height
:
25px
;
...
...
@@ -205,10 +208,13 @@ div.main.drop {
color
:
white
;
}
.downloads
li
{
height
:
40px
;
padding
:
0
20px
;
position
:
relative
;
.downloads
lu
{
font-size
:
16px
;
line-height
:
50px
;
text-align
:
left
;
height
:
40px
;
padding
:
0
40px
;
position
:
relative
;
}
.uploads
.progress
{
...
...
Sources/VLCHTTPConnection.m
View file @
2b9e36ff
...
...
@@ -114,6 +114,10 @@
theData
=
UIImagePNGRepresentation
([
VLCThumbnailsCache
thumbnailForLabel
:(
MLLabel
*
)
mo
]);
else
if
([
mo
isKindOfClass
:[
MLAlbum
class
]])
theData
=
UIImagePNGRepresentation
([
VLCThumbnailsCache
thumbnailForMediaFile
:[[(
MLAlbum
*
)
mo
tracks
].
anyObject
files
].
anyObject
]);
else
if
([
mo
isKindOfClass
:[
MLAlbumTrack
class
]])
theData
=
UIImagePNGRepresentation
([
VLCThumbnailsCache
thumbnailForMediaFile
:[(
MLAlbumTrack
*
)
mo
files
].
anyObject
]);
else
if
([
mo
isKindOfClass
:[
MLShowEpisode
class
]])
theData
=
UIImagePNGRepresentation
([
VLCThumbnailsCache
thumbnailForMediaFile
:[(
MLShowEpisode
*
)
mo
files
].
anyObject
]);
if
(
theData
)
return
[[
HTTPDataResponse
alloc
]
initWithData
:
theData
];
...
...
@@ -123,30 +127,67 @@
NSString
*
relativePath
=
[
filePath
substringFromIndex
:[
documentRoot
length
]];
if
([
relativePath
isEqualToString
:
@"/index.html"
])
{
NSArray
*
allFiles
=
[
MLFile
allFiles
];
NSString
*
fileList
=
@""
;
for
(
MLFile
*
file
in
allFiles
)
{
NSString
*
adaptedFileURL
=
[
file
.
url
stringByReplacingOccurrencesOfString
:
@"file://"
withString
:
@""
];
NSString
*
fileHTML
=
[
NSString
stringWithFormat
:
@"<li><a href=
\"
download/%@
\"
download>%@</a> — <a href=
\"
thumbnail/%@.png
\"
>preview</a></li>"
,
adaptedFileURL
,
file
.
title
,
file
.
objectID
.
URIRepresentation
];
fileList
=
[
fileList
stringByAppendingString
:
fileHTML
];
}
NSMutableArray
*
allMedia
=
[[
NSMutableArray
alloc
]
init
];
/* add all albums */
NSArray
*
allAlbums
=
[
MLAlbum
allAlbums
];
for
(
MLAlbum
*
album
in
allAlbums
)
{
NSString
*
fileHTML
=
[
NSString
stringWithFormat
:
@"<li>%@ — <a href=
\"
th
um
b
na
il/%@.png
\"
>preview</a></li>"
,
album
.
name
,
album
.
objectID
.
URIRepresentation
];
fileList
=
[
fileList
stringByAppendingString
:
fileHTML
];
if
(
alb
um
.
na
me
.
length
>
0
&&
album
.
tracks
.
count
>
1
)
[
allMedia
addObject
:
album
];
}
/* add all shows */
NSArray
*
allShows
=
[
MLShow
allShows
];
for
(
MLShow
*
show
in
allShows
)
{
NSString
*
fileHTML
=
[
NSString
stringWithFormat
:
@"<li>%@ — <a href=
\"
thumbnail/%@.png
\"
>preview</a></li>"
,
show
.
name
,
show
.
objectID
.
URIRepresentation
];
fileList
=
[
fileList
stringByAppendingString
:
fileHTML
];
if
(
show
.
name
.
length
>
0
&&
show
.
episodes
.
count
>
1
)
[
allMedia
addObject
:
show
];
}
NSArray
*
allLabels
=
[
MLLabel
allLabels
];
for
(
MLLabel
*
label
in
allLabels
)
{
NSString
*
fileHTML
=
[
NSString
stringWithFormat
:
@"<li>%@ — <a href=
\"
thumbnail/%@.png
\"
>preview</a></li>"
,
label
.
name
,
label
.
objectID
.
URIRepresentation
];
fileList
=
[
fileList
stringByAppendingString
:
fileHTML
];
/* add all folders*/
NSArray
*
allFolders
=
[
MLLabel
allLabels
];
for
(
MLLabel
*
folder
in
allFolders
)
[
allMedia
addObject
:
folder
];
/* add all remaining files */
NSArray
*
allFiles
=
[
MLFile
allFiles
];
for
(
MLFile
*
file
in
allFiles
)
{
if
(
file
.
labels
.
count
>
0
)
continue
;
if
(
!
file
.
isShowEpisode
&&
!
file
.
isAlbumTrack
)
[
allMedia
addObject
:
file
];
else
if
(
file
.
isShowEpisode
)
{
if
(
file
.
showEpisode
.
show
.
episodes
.
count
<
2
)
[
allMedia
addObject
:
file
];
}
else
if
(
file
.
isAlbumTrack
)
{
if
(
file
.
albumTrack
.
album
.
tracks
.
count
<
2
)
[
allMedia
addObject
:
file
];
}
}
NSMutableArray
*
mediaInHtml
=
[[
NSMutableArray
alloc
]
initWithCapacity
:
allMedia
.
count
];
for
(
NSManagedObject
*
mo
in
allMedia
)
{
if
([
mo
isKindOfClass
:[
MLFile
class
]])
[
mediaInHtml
addObject
:[
NSString
stringWithFormat
:
@"<li><a href=
\"
download/%@
\"
download>%@</a> — <a href=
\"
thumbnail/%@.png
\"
>preview</a></li>"
,
[[(
MLFile
*
)
mo
url
]
stringByReplacingOccurrencesOfString
:
@"file://"
withString
:
@""
],
[(
MLFile
*
)
mo
title
],
mo
.
objectID
.
URIRepresentation
]];
else
if
([
mo
isKindOfClass
:[
MLShow
class
]])
{
NSArray
*
episodes
=
[(
MLShow
*
)
mo
sortedEpisodes
];
[
mediaInHtml
addObject
:[
NSString
stringWithFormat
:
@"<li>%@ — <a href=
\"
thumbnail/%@.png
\"
>preview</a></li>"
,
[(
MLShow
*
)
mo
name
],
mo
.
objectID
.
URIRepresentation
]];
for
(
MLShowEpisode
*
showEp
in
episodes
)
[
mediaInHtml
addObject
:[
NSString
stringWithFormat
:
@"<lu><a href=
\"
download/%@
\"
download>%@</a> — <a href=
\"
thumbnail/%@.png
\"
>preview</a></lu><br />"
,
[[(
MLFile
*
)[[
showEp
files
]
anyObject
]
url
]
stringByReplacingOccurrencesOfString
:
@"file://"
withString
:
@""
],
showEp
.
name
,
showEp
.
objectID
.
URIRepresentation
]];
}
else
if
([
mo
isKindOfClass
:[
MLLabel
class
]])
{
NSArray
*
folderItems
=
[(
MLLabel
*
)
mo
sortedFolderItems
];
[
mediaInHtml
addObject
:[
NSString
stringWithFormat
:
@"<li>%@ — <a href=
\"
thumbnail/%@.png
\"
>preview</a></li>"
,
[(
MLLabel
*
)
mo
name
],
mo
.
objectID
.
URIRepresentation
]];
for
(
MLFile
*
file
in
folderItems
)
[
mediaInHtml
addObject
:[
NSString
stringWithFormat
:
@"<lu><a href=
\"
download/%@
\"
download>%@</a> — <a href=
\"
thumbnail/%@.png
\"
>preview</a></lu><br />"
,
[[
file
url
]
stringByReplacingOccurrencesOfString
:
@"file://"
withString
:
@""
],
file
.
title
,
file
.
objectID
.
URIRepresentation
]];
}
else
if
([
mo
isKindOfClass
:[
MLAlbum
class
]])
{
NSArray
*
albumTracks
=
[(
MLAlbum
*
)
mo
sortedTracks
];
[
mediaInHtml
addObject
:[
NSString
stringWithFormat
:
@"<li>%@ — <a href=
\"
thumbnail/%@.png
\"
>preview</a></li>"
,
[(
MLAlbum
*
)
mo
name
],
mo
.
objectID
.
URIRepresentation
]];
for
(
MLAlbumTrack
*
track
in
albumTracks
)
[
mediaInHtml
addObject
:[
NSString
stringWithFormat
:
@"<lu><a href=
\"
download/%@
\"
download>%@</a> — <a href=
\"
thumbnail/%@.png
\"
>preview</a></lu><br />"
,
[[(
MLFile
*
)[[
track
files
]
anyObject
]
url
]
stringByReplacingOccurrencesOfString
:
@"file://"
withString
:
@""
],
track
.
title
,
track
.
objectID
.
URIRepresentation
]];
}
}
NSDictionary
*
replacementDict
=
@{
@"FILES"
:
fileList
,
NSDictionary
*
replacementDict
=
@{
@"FILES"
:
[
mediaInHtml
componentsJoinedByString
:
@" "
]
,
@"WEBINTF_TITLE"
:
NSLocalizedString
(
@"WEBINTF_TITLE"
,
nil
),
@"WEBINTF_DROPFILES"
:
NSLocalizedString
(
@"WEBINTF_DROPFILES"
,
nil
),
@"WEBINTF_DROPFILES_LONG"
:
NSLocalizedString
(
@"WEBINTF_DROPFILES_LONG"
,
nil
),
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment