Podcast Banner

The PowerScore LSAT Podcast

About the Podcast

PowerScore CEO and LSAT Bible author Dave Killoran and PowerScore VP Jon Denning are two of the world’s foremost experts on the LSAT and law school admissions, and they’ve created the PowerScore LSAT Podcast to share their knowledge and experience with you! Topics range from specific LSAT concepts and strategies, to breaking LSAT news and changes, to law school application advice, and listener-submitted questions.

Subscribe to the Podcast:
Follow Us:
Breadcrumb
Asset Publisher
An error occurred while processing the template.
The string doesn't match the expected date/time/date-time format. The string to parse was: "November 30, 2024". The expected format was: "EEE, dd MMM yyyy HH:mm:ss Z".
The nested reason given follows:
Unparseable date: "November 30, 2024"

----
FTL stack trace ("~" means nesting-related):
	- Failed at: parsedDate = pubDate?datetime("EEE, d...  [in template "20096#20121#101427" at line 18, column 33]
----
1<section class="section podcast_episode pt-5 pb-1"> 
2    <div class="container"> 
3        <div class="default-heading subtitle_h2"> 
4                <h2> Episodes </h2> 
5            </div> 
6		 
7<#if entries?has_content> 
8    <#list entries as curEntry> 
9			<#assign 
10		    entry = curEntry 
11		    assetRenderer = curEntry.getAssetRenderer() 
12		    entryTitle = htmlUtil.escape(assetRenderer.getTitle(locale)) 
13		    viewURL = assetPublisherHelper.getAssetViewURL(renderRequest, renderResponse, assetRenderer, entry, !stringUtil.equals(assetLinkBehavior, "showFullContent")) 
14	      /> 
15				<#assign docXml=saxReaderUtil.read(curEntry.getAssetRenderer().getArticle().getContentByLocale(locale.toString())) 
16				title=docXml.valueOf("//dynamic-element[@field-reference='Text62743630' ]/dynamic-content") 
17				pubDate=docXml.valueOf("//dynamic-element[@field-reference='Text44181818' ]/dynamic-content") 
18				parsedDate = pubDate?datetime("EEE, dd MMM yyyy HH:mm:ss Z") 
19				formattedDate = parsedDate?string("EEE, dd MMM yyyy") 
20				podcastImage=docXml.valueOf("//dynamic-element[@field-reference='Text64639435' ]/dynamic-content") 
21				description=docXml.valueOf("//dynamic-element[@field-reference='RichText94527332' ]/dynamic-content") 
22				extractedDescription = description?replace('<[^>]+>','','r') 
23				podcastURL=docXml.valueOf("//dynamic-element[@field-reference='Text68555789' ]/dynamic-content") 
24				duration=docXml.valueOf("//dynamic-element[@field-reference='Text81553976' ]/dynamic-content") 
25				episodeTimestamp=docXml.valueOf("//dynamic-element[@field-reference='RichText24629768' ]/dynamic-content") 
26				audioPlayer=docXml.valueOf("//dynamic-element[@field-reference='Text71794597' ]/dynamic-content") 
27				applePodcast=docXml.valueOf("//dynamic-element[@field-reference='Text69908893' ]/dynamic-content") 
28				spotifyPodcast=docXml.valueOf("//dynamic-element[@field-reference='Text82589801' ]/dynamic-content") 
29				padoraPodcast=docXml.valueOf("//dynamic-element[@field-reference='Text51026635' ]/dynamic-content") 
30			  /> 
31			  <#assign lowerCaseString = title?lower_case> 
32			  <!--<#assign dynamicURL = lowerCaseString?replace(" ", "-", "r")>--> 
33				<#assign dynamicURL = curEntry.getAssetRenderer().getArticle().getUrlTitle(locale)> 
34 
35        <div class="views-row"> 
36            <div class="card"> 
37                <div class="card-body"> 
38                    <div class="row justify-content-between align-items-start"> 
39                        <div class="col-12 col-sm-12 col-lg-12 col-xl-8"> 
40                            <h3> 
41                                <a href="/lsat/resources/podcast/-/detail/title/${dynamicURL}">${title}</a> 
42                            </h3> 
43                            <div class="row justify-content-between align-items-center"> 
44                                <div class="col-12 col-md-2 col-lg-3 col-xl-2 pr-0"> 
45                                    <div class="podcast_thumbnail"> 
46                                        <img src="/documents/d/powerscore/podcast-social-square-png" alt="thumbnail"/> 
47                                    </div> 
48                                </div> 
49                                <div class="col-12 col-md-10 col-lg-9 col-xl-10 pr-xl-5"> 
50                                    <div class="audioPlyer"> 
51                                        <div class="row justify-content-between align-items-center date_area_episode_lengths"> 
52                                            <div class="col-12 col-sm-6 col-md-6 col-xl-auto"> 
53                                                <div class="date_area"> 
54                                                    <i class="web-calendar"></i> Air Date : ${formattedDate} 
55                                                </div> 
56                                            </div> 
57                                            <div class="col-12 col-sm-6 col-md-6 col-xl-auto"> 
58                                                <div class="episode_lengths"> 
59                                                    <i class="web-time"></i> Episode Length : <span class="audioLength">${duration}</span> 
60                                                </div> 
61                                            </div> 
62                                        </div> 
63                                        <div class="row justify-content-start align-items-center player_area"> 
64                                            <div class="col-2 col-sm-1 col-md-1 col-lg-1 col-xl-1 pr-1"> 
65                                                <button class="play play_icon"> 
66													<i class="cust-icon web-play-btn"></i> 
67                                                </button> 
68                                            </div> 
69                                            <div class="col-10 col-sm-11 col-md-11 col-lg-11 col-xl-11 pl-sm-4 audio-container"> 
70                                                <div class="progress"> 
71                                                    <div class="progress-bar" role="progressbar" aria-valuenow="0" aria-valuemin="0" aria-valuemax="100"></div> 
72                                                </div> 
73                                                <audio class="audioPlayer myaudio" controls="controls" preload="auto" src="${podcastURL}"> Audio Player example </audio> 
74                                            </div> 
75                                        </div> 
76                                        <div class="row justify-content-between align-items-center next_previous_time"> 
77                                            <div class="col-4 col-sm-4 col-md-auto"> 
78                                                <button class="btn pc_theme_btn btn-secondary backward"> 
79                                                <i class="web-double-arrow-left"></i>30 S<span class="d-none d-sm-inline-block">econds</span></button> 
80                                            </div> 
81											<div class="col-4 col-sm-4 col-md-auto"><span class="audio_timing">00:00:00</span></div> 
82                                            <div class="col-4 col-sm-4 col-md-auto"> 
83                                                <button class="btn pc_theme_btn btn-secondary forward">30 S<span class="d-none d-sm-inline-block">econds</span><i class="web-double-arrow-right"></i> </button> 
84                                            </div> 
85                                        </div> 
86                                    </div> 
87                                </div> 
88                            </div> 
89                        </div> 
90                        <div class="col-12 col-sm-12 col-lg-12 col-xl-4 moreAndless"> 
91													<h4>Episode Description</h4> 
92                            <div class="paragraph_area"> 
93															  <#assign minititle=(extractedDescription!"")> 
94																<#if minititle?length &lt; 280> 
95																${extractedDescription} 
96																<#else> 
97																${extractedDescription?substring(0,279)}... 
98																</#if> 
99                            </div> 
100																	<div class="paragraph_area paraBg active"> 
101														<a href="/lsat/resources/podcast/-/detail/title/${dynamicURL}" class="btn pc_theme_btn btn-secondary w-100"> 
102														  <span class="expand_des w-100"> View Full Description & Timestamps </span> 
103																		</a></div> 
104                        </div> 
105                    </div> 
106                </div> 
107            </div> 
108        </div> 
109		</#list> 
110</#if> 
111		 
112    </div> 
113</section> 
114 
115<script type="text/javascript"> 
116		 
117		 
118		//Play-Pause 
119		$(".play").on("click", function() { 
120			console.log("Play Audio"); 
121			if (window.HTMLAudioElement) { 
122				try { 
123					var oAudio = $(this).closest('.audioPlyer').find('.myaudio'); 
124					if (oAudio[0].paused) { 
125						$(this).find('i.cust-icon').removeClass('web-play-btn'); 
126						$(this).find('i.cust-icon').addClass('web-stop-btn'); 
127						oAudio[0].play(); 
128						oAudio.on('timeupdate', (e) => { 
129							const { duration, currentTime } = oAudio[0]; 
130							let progressPercent = (currentTime / duration) * 100; 
131							$(this).closest('.audioPlyer').find('.progress-bar').width(progressPercent+"%"); 
132							$(this).parents('.audioPlyer').find('.audio_timing').html(formatTime(Math.floor(currentTime))); 
133						}); 
134					} else { 
135						$(this).find('i.cust-icon').addClass('web-play-btn'); 
136						$(this).find('i.cust-icon').removeClass('web-stop-btn'); 
137						oAudio[0].pause(); 
138
139				} catch (e) { 
140					if (window.console && console.error("Error:" + e)); 
141
142
143		}); 
144		 
145		function formatTime(seconds) { 
146			const h = Math.floor(seconds / 3600); 
147			const m = Math.floor((seconds % 3600) / 60); 
148			const s = seconds % 60; 
149			const formattedH = h < 10 ? '0' + h : h; 
150			const formattedM = m < 10 ? '0' + m : m; 
151			const formattedS = s < 10 ? '0' + s : s; 
152			return (formattedH+':'+formattedM+':'+formattedS); 
153
154		 
155		//Forward 
156		$(".forward").on("click", function() { 
157			console.log("Forward Calling"); 
158			if (window.HTMLAudioElement) { 
159				try { 
160					var oAudio = $(this).closest('.audioPlyer').find('.myaudio'); 
161					oAudio[0].currentTime += 30.0; 
162				} catch (e) { 
163					if (window.console && console.error("Error:" + e)); 
164
165
166		}); 
167		 
168		//Backward 
169		$(".backward").on("click", function() { 
170			console.log("Backward Calling"); 
171			if (window.HTMLAudioElement) { 
172				try { 
173					var oAudio = $(this).closest('.audioPlyer').find('.myaudio'); 
174					oAudio[0].currentTime -= 30.0; 
175				} catch (e) { 
176					if (window.console && console.error("Error:" + e)); 
177
178
179		}); 
180		 
181		function setProgress(e) { 
182			var oAudio = e.target.closest('.audio-container').querySelector('.myaudio'); 
183			var audioFile = $(this).closest('.audioPlyer').find('.myaudio'); 
184			const width = e.target.clientWidth; 
185			console.log("width>>> ", width); 
186			const clickX = e.offsetX; 
187			console.log("clickX>>> ", clickX); 
188			const duration = oAudio.duration; 
189			oAudio.currentTime = (clickX / width) * duration; 
190
191 
192		// Get all elements with the class name 'progress' and attach event listeners 
193		const progressElements = document.getElementsByClassName('progress'); 
194		for (let i = 0; i < progressElements.length; i++) { 
195			progressElements[i].addEventListener('click', setProgress); 
196
197    </script> 
198<style> 
199	.progress { 
200		cursor: pointer; 
201
202	.player_area .play { 
203		position: relative; 
204		height: 48px; 
205		width: 48px; 
206		display: block; 
207
208	.player_area .play i { 
209		font-size: 50px; 
210		position: absolute; 
211		left: 0; 
212		top: 50%; 
213		transform: translateY(-50%); 
214		background: linear-gradient(to right, #235ba8 0%, #1c75d4 100%); 
215		-webkit-text-fill-color: transparent; 
216		-webkit-background-clip: text; 
217
218	.player_area .progress .progress-bar { 
219		pointer-events: none; 
220
221/* Pagination Styling */ 
222.pagination-bar { 
223    max-width: 1312px; 
224    width: 100%; 
225    margin-left: auto; 
226    margin-right: auto; 
227    padding-left: calc(24px* 0.5); 
228    padding-right: calc(24px* 0.5); 
229	  margin-bottom: 20px; 
230
231.pagination .page-link, .pagination .page-link span, .pagination .lfr-portal-tooltip.page-link { 
232    color: #464f57; 
233    text-decoration: none; 
234    font-weight: 500; 
235    font-size: inherit; 
236    margin-left: 0; 
237    padding: 0; 
238    border-radius: 4px; 
239    height: auto; 
240    line-height: inherit; 
241    display: block; 
242    background-color: inherit; 
243    border: 0; 
244
245.pagination .page-link span.c-inner, .pagination a.page-link, .pagination button.page-link { 
246    padding: 10px 15px; 
247
248.pagination .page-item:hover button.page-link span, .pagination .page-item:hover .page-link span.c-inner { 
249	  background-color: #2a5488; 
250    border-color: #2a5488; 
251    color: #fff; 
252
253.page-item:last-child .page-link, .page-link-last { 
254    border-radius: 0 .25rem .25rem 0 !important; 
255
256</style>