rovided by the application to uniquely identify it. * @type string $name The name of the application password. * @type string $password A one-way hash of the password. * @type int $created Unix timestamp of when the password was created. * @type null $last_used Null. * @type null $last_ip Null. * } * @param string $new_password The generated application password in plain text. * @param array $args { * Arguments used to create the application password. * * @type string $name The name of the application password. * @type string $app_id A UUID provided by the application to uniquely identify it. * } */ do_action( 'wp_create_application_password', $user_id, $new_item, $new_password, $args ); return array( $new_password, $new_item ); } /** * Gets a user's application passwords. * * @since 5.6.0 * * @param int $user_id User ID. * @return array { * The list of application passwords. * * @type array ...$0 { * @type string $uuid The unique identifier for the application password. * @type string $app_id A UUID provided by the application to uniquely identify it. * @type string $name The name of the application password. * @type string $password A one-way hash of the password. * @type int $created Unix timestamp of when the password was created. * @type int|null $last_used The Unix timestamp of the GMT date the application password was last used. * @type string|null $last_ip The IP address the application password was last used by. * } * } */ public static function get_user_application_passwords( $user_id ) { $passwords = get_user_meta( $user_id, static::USERMETA_KEY_APPLICATION_PASSWORDS, true ); if ( ! is_array( $passwords ) ) { return array(); } $save = false; foreach ( $passwords as $i => $password ) { if ( ! isset( $password['uuid'] ) ) { $passwords[ $i ]['uuid'] = wp_generate_uuid4(); $save = true; } } if ( $save ) { static::set_user_application_passwords( $user_id, $passwords ); } return $passwords; } /** * Gets a user's application password with the given UUID. * * @since 5.6.0 * * @param int $user_id User ID. * @param string $uuid The password's UUID. * @return array|null { * The application password if found, null otherwise. * * @type string $uuid The unique identifier for the application password. * @type string $app_id A UUID provided by the application to uniquely identify it. * @type string $name The name of the application password. * @type string $password A one-way hash of the password. * @type int $created Unix timestamp of when the password was created. * @type int|null $last_used The Unix timestamp of the GMT date the application password was last used. * @type string|null $last_ip The IP address the application password was last used by. * } */ public static function get_user_application_password( $user_id, $uuid ) { $passwords = static::get_user_application_passwords( $user_id ); foreach ( $passwords as $password ) { if ( $password['uuid'] === $uuid ) { return $password; } } return null; } /** * Checks if an application password with the given name exists for this user. * * @since 5.7.0 * * @param int $user_id User ID. * @param string $name Application name. * @return bool Whether the provided application name exists. */ public static function application_name_exists_for_user( $user_id, $name ) { $passwords = static::get_user_application_passwords( $user_id ); foreach ( $passwords as $password ) { if ( strtolower( $password['name'] ) === strtolower( $name ) ) { return true; } } return false; } /** * Updates an application password. * * @since 5.6.0 * @since 6.8.0 The actual password should now be hashed using wp_fast_hash(). * * @param int $user_id User ID. * @param string $uuid The password's UUID. * @param array $update { * Information about the application password to update. * * @type string $uuid The unique identifier for the application password. * @type string $app_id A UUID provided by the application to uniquely identify it. * @type string $name The name of the application password. * @type string $password A one-way hash of the password. * @type int $created Unix timestamp of when the password was created. * @type int|null $last_used The Unix timestamp of the GMT date the application password was last used. * @type string|null $last_ip The IP address the application password was last used by. * } * @return true|WP_Error True if successful, otherwise a WP_Error instance is returned on error. */ public static function update_application_password( $user_id, $uuid, $update = array() ) { $passwords = static::get_user_application_passwords( $user_id ); foreach ( $passwords as &$item ) { if ( $item['uuid'] !== $uuid ) { continue; } if ( ! empty( $update['name'] ) ) { $update['name'] = sanitize_text_field( $update['name'] ); } $save = false; if ( ! empty( $update['name'] ) && $item['name'] !== $update['name'] ) { $item['name'] = $update['name']; $save = true; } if ( $save ) { $saved = static::set_user_application_passwords( $user_id, $passwords ); if ( ! $saved ) { return new WP_Error( 'db_error', __( 'Could not save application password.' ) ); } } /** * Fires when an application password is updated. * * @since 5.6.0 * @since 6.8.0 The password is now hashed using wp_fast_hash() instead of phpass. * Existing passwords may still be hashed using phpass. * * @param int $user_id The user ID. * @param array $item { * The updated application password details. * * @type string $uuid The unique identifier for the application password. * @type string $app_id A UUID provided by the application to uniquely identify it. * @type string $name The name of the application password. * @type string $password A one-way hash of the password. * @type int $created Unix timestamp of when the password was created. * @type int|null $last_used The Unix timestamp of the GMT date the application password was last used. * @type string|null $last_ip The IP address the application password was last used by. * } * @param array $update The information to update. */ do_action( 'wp_update_application_password', $user_id, $item, $update ); return true; } return new WP_Error( 'application_password_not_found', __( 'Could not find an application password with that id.' ) ); } /** * Records that an application password has been used. * * @since 5.6.0 * * @param int $user_id User ID. * @param string $uuid The password's UUID. * @return true|WP_Error True if the usage was recorded, a WP_Error if an error occurs. */ public static function record_application_password_usage( $user_id, $uuid ) { $passwords = static::get_user_application_passwords( $user_id ); foreach ( $passwords as &$password ) { if ( $password['uuid'] !== $uuid ) { continue; } // Only record activity once a day. if ( $password['last_used'] + DAY_IN_SECONDS > time() ) { return true; } $password['last_used'] = time(); $password['last_ip'] = $_SERVER['REMOTE_ADDR']; $saved = static::set_user_application_passwords( $user_id, $passwords ); if ( ! $saved ) { return new WP_Error( 'db_error', __( 'Could not save application password.' ) ); } return true; } // Specified application password not found! return new WP_Error( 'application_password_not_found', __( 'Could not find an application password with that id.' ) ); } /** * Deletes an application password. * * @since 5.6.0 * * @param int $user_id User ID. * @param string $uuid The password's UUID. * @return true|WP_Error Whether the password was successfully found and deleted, a WP_Error otherwise. */ public static function delete_application_password( $user_id, $uuid ) { $passwords = static::get_user_application_passwords( $user_id ); foreach ( $passwords as $key => $item ) { if ( $item['uuid'] === $uuid ) { unset( $passwords[ $key ] ); $saved = static::set_user_application_passwords( $user_id, $passwords ); if ( ! $saved ) { return new WP_Error( 'db_error', __( 'Could not delete application password.' ) ); } /** * Fires when an application password is deleted. * * @since 5.6.0 * * @param int $user_id The user ID. * @param array $item The data about the application password. */ do_action( 'wp_delete_application_password', $user_id, $item ); return true; } } return new WP_Error( 'application_password_not_found', __( 'Could not find an application password with that id.' ) ); } /** * Deletes all application passwords for the given user. * * @since 5.6.0 * * @param int $user_id User ID. * @return int|WP_Error The number of passwords that were deleted or a WP_Error on failure. */ public static function delete_all_application_passwords( $user_id ) { $passwords = static::get_user_application_passwords( $user_id ); if ( $passwords ) { $saved = static::set_user_application_passwords( $user_id, array() ); if ( ! $saved ) { return new WP_Error( 'db_error', __( 'Could not delete application passwords.' ) ); } foreach ( $passwords as $item ) { /** This action is documented in wp-includes/class-wp-application-passwords.php */ do_action( 'wp_delete_application_password', $user_id, $item ); } return count( $passwords ); } return 0; } /** * Sets a user's application passwords. * * @since 5.6.0 * * @param int $user_id User ID. * @param array $passwords { * The list of application passwords. * * @type array ...$0 { * @type string $uuid The unique identifier for the application password. * @type string $app_id A UUID provided by the application to uniquely identify it. * @type string $name The name of the application password. * @type string $password A one-way hash of the password. * @type int $created Unix timestamp of when the password was created. * @type int|null $last_used The Unix timestamp of the GMT date the application password was last used. * @type string|null $last_ip The IP address the application password was last used by. * } * } * @return int|bool User meta ID if the key didn't exist (ie. this is the first time that an application password * has been saved for the user), true on successful update, false on failure or if the value passed * is the same as the one that is already in the database. */ protected static function set_user_application_passwords( $user_id, $passwords ) { return update_user_meta( $user_id, static::USERMETA_KEY_APPLICATION_PASSWORDS, $passwords ); } /** * Sanitizes and then splits a password into smaller chunks. * * @since 5.6.0 * * @param string $raw_password The raw application password. * @return string The chunked password. */ public static function chunk_password( #[\SensitiveParameter] $raw_password ) { $raw_password = preg_replace( '/[^a-z\d]/i', '', $raw_password ); return trim( chunk_split( $raw_password, 4, ' ' ) ); } /** * Hashes a plaintext application password. * * @since 6.8.0 * * @param string $password Plaintext password. * @return string Hashed password. */ public static function hash_password( #[\SensitiveParameter] string $password ): string { return wp_fast_hash( $password ); } /** * Checks a plaintext application password against a hashed password. * * @since 6.8.0 * * @param string $password Plaintext password. * @param string $hash Hash of the password to check against. * @return bool Whether the password matches the hashed password. */ public static function check_password( #[\SensitiveParameter] string $password, string $hash ): bool { if ( ! str_starts_with( $hash, '$generic$' ) ) { /* * If the hash doesn't start with `$generic$`, it is a hash created with `wp_hash_password()`. * This is the case for application passwords created before 6.8.0. */ return wp_check_password( $password, $hash ); } return wp_verify_fast_hash( $password, $hash ); } } VARIOUS - SOUTHERN BRED VOL.14 - Louisiana New Orleans R&B Rockers - KOKO MOJO CD - No Hit Records

VARIOUS – SOUTHERN BRED VOL.14 – Louisiana New Orleans R&B Rockers – KOKO MOJO CD

I Love To Rock ‘n’ Roll Koko Mojo (KMCD064) is the second Southern Bred exploration into the music from Louisiana and New Orleans known as Crescent City and the artists and newly introduced performers are intermixed throughout the series to make a more diverse assortment of sound and artist. Unquestionably the aural feeling of this album is varied, with a dynamic and eclectic assortment of recordings. The titles are not used in chronological order they are used to fit with the albums direction and add a variety of sound. Most importantly due to the time frame of the recordings the sound and style for some artists may have changed. As always, the sequence of artists and styles sit comfortably side by side and this album focuses on Rhythm & Blues, Rock ‘n’ Roll, and up-tempo Blues music. The mouthwatering array of Rhythm & Blues talent includes; Eddie Bo, Smiley Lewis, Little Eddie who has a name change to Eddie Lang and the exceptional Earl King who has Fats on piano, but who is Fats? The stalwarts are; Paul Gayten and His Orchestra, Champion Jack Dupree, Roy Brown, Frankie Lee Sims, Jesse Thomas, Rudy Green, and Classie Ballou and a man who was integral in the New Orleans music scene Roy Byrd aka Professor Longhair. With a different musical approach, you will hear, Linda Hopkins, Oscar McLollie and His Honeyjumpers and Big Boy Myles with Mac Rebennack Orchestra together with Bluesmen supreme Slim Harpo and Buddy Guy to deepen the aural feel of the album. The Rock ‘n’ Roll hitmakers featured are; Fats Domino, Larry Williams, Clarence (Frogman) Henry, Richard Berry and The Lockettes, and Doo Wop rocker Donnie Elbert who add extra dynamism to the sound. The album like its predecessors could also be referred to as a self-composed album for most of the songs that came from the artist’s pen. The album is great to play at home and perfect for Dee Jays who will find good dance-floor filling songs. As with every album, there is more music to hear and enjoy and the vibrant music has a pleasing up-tempo feel throughout. Our albums have; stunning design, sleeve notes, twenty-eight songs, mastered for the best possible sound. The disc is housed in an attractively designed cardboard sleeve, specially designed to avoid the use of plastic and be environmentally friendly. You are listening to music from the past and preserving the future! Dee Jay Mark Armstrong Bühl, Germany tracklist:

01 Eddie Bo I Love To Rock ‘n’ Roll (Bocage) 02:25 Ace 1959

02 Little Sonny Jones I Got Booted (Bartholomew) 02:19 Imperial 1954

03 Eddie Lang She’s Mine, All Mine (Langlois, Ruffino) 01:58 Ron 1959

04 Roy Brown Big Town (Brown) 02:55 DeLuxe 1951

05 Jesse Thomas Jack Of Diamonds (Thomas) 02:11 Specialty 1951

06 Larry Williams Let Me Tell You Baby (Williams) 02:39 Speciality 1957

07 Earl King featuring Fats on Piano Is Everything Alright (King, Vincent) 02:46 Ace 1956

08 Big Boy Myles and The Shaw-Wees Who’s Been Fooling You (Byrd) 01:56 Specialty 1955

09 Roy Byrd and His Blues Jumpers Bald Head (Bryd) 02:31 Mercury 1950

10 Classie Ballou and His Tempo Kings Orchestra Loving Huggin’ Kissin’ My Baby (Shuler, Ballou) 02:48 Goldband 1956

11 Tommy Ridgely Jam Up Twist (Ridgely) 02:49 Atlantic 1962

12 Buddy Guy Slop Around (Dixon, Guy, Montgomery) 02:05 Chess 1960

13 Slim Harpo Bobby Sox Baby (Moore, West) 01:41 Excello 1960

14 Donnie Elbert Leona (Cooley) 02:23 DeLuxe 1957

15 Roland Cook I’ve Got A Girl (Cook-Vincent) 02:15 Ace 1957

16 Linda Hopkins Rock & Roll Blues (Connolly, Weiner) 02:07 Atco 1957

17 Paul Gayten and His Orchestra Cow Cow Blues (Davenport) 02:01 Okeh 1953

18 Fats Domino Bo Weevil (Bartholomew, Antoine Domino) 02:11 Imperial 1956

19 Clarence Henry I Found A Home (Henry, Gayten) 02:29 Argo 1957

20 Champion Jack Dupree Rub A Little Boogie (Dupree) 02:16 King 1954

21 Frankie Lee Sims Hey Little Girl (Vincent, Sims) 02:38 Ace 1957

22 Larry Williams You Bug Me Baby (Williams) 01:52 Specialty 1957

23 Rudy Green and Orchestra It’s You I Love (Green) 02:14 Chance 1953

24 Roland Cook I Want To Know Why (Cook, Vincent) 02:28 Ace 1957

25 Richard Berry and The Lockettes The Mess Around (Berry) 02:37 Flip 1958

26 Linda Hopkins and The Red Callender Orchestra Get Off My Wagon (Leiber, Stoller) 02:35 Forecast 1954

27 Oscar McLollie and His Honeyjumpers Hot Banana (Thomas) 02:21 Modern 1954

28 Big Boy Myles with Mac Rebennack Orchestra New Orleans (Klein) 02:24 Ace 1960

Share this:

£ 11.00

Add to Basket

Release Date:

Format: CD Album

Secret Link